我从MemoryStream中读取数据,然后将其转换回字符串,但是值是("")。我阅读了有关StreamReader的微软文档,但不完全理解我需要做些什么来避免这种情况。
这是我的代码:
byte[] bytee = Encoding.UTF8.GetBytes(user);
MemoryStream stream = new MemoryStream(bytee );
MemoryStream original = Encryption.SymmetricEncrypt(stream);
StreamReader reader = new StreamReader(original);
reader.ReadToEnd();
stream.Seek(0, SeekOrigin.Begin);
string text = reader.ReadToEnd();
user = text;发布于 2019-12-24 17:51:29
这里有两个问题:
后者是一个更大的问题;大多数密码API都不是基于文本的,所以使用文本阅读器是错误的。由于这是一个MemoryStream,所以我们有另一个可以一次性解决这两个问题的选项:
进行编码。
代码:
string s = Convert.ToBase64String(
original.GetBuffer(), 0, (int)original.Length);要扭转这种情况,请使用Convert.FromBase64String,并在新MemoryStream的构造函数中使用byte[]。
发布于 2019-12-24 16:34:11
您可以简单地这样做:
string text = reader.ReadToEnd();并移除
reader.ReadToEnd();
stream.Seek(0, SeekOrigin.Begin);https://stackoverflow.com/questions/59471347
复制相似问题