gpt4 book ai didi

c# - 读取流正在改变它的哈希值

转载 作者:行者123 更新时间:2023-11-30 14:01:19 24 4
gpt4 key购买 nike

我有以下代码,它正在读取一个 Stream 并将其内容存储为一个字符串。不幸的是,在 StreamReader 不再使用之后,Stream 的哈希值发生了变化。这怎么可能? Stream 是只读的,因此无法更改。

string content;
string hash = Cryptography.CalculateSHA1Hash(stream); // 5B006E35CF1838871FDC1E3DF52B0CB5A8A97274
using (StreamReader reader = new StreamReader(stream))
{
content = reader.ReadToEnd();
}
hash = Cryptography.CalculateSHA1Hash(stream); // DA39A3EE5E6B4B0D3255BFEF95601890AFD80709

最佳答案

SHA1 值 DA39A3EE5E6B4B0D3255BFEF95601890AFD80709 是对空字符串进行哈希处理的结果。对 Cryptography.CalculateSHA1Hash 的调用从字符串中读取所有内容(从当前位置到末尾)并对其进行哈希处理。第一次调用 Cryptography.CalculateSHA1Hash 后,没有更多数据可读。

我也猜想您的 StreamReader.ReadToEnd() 由于同样的原因返回一个空字符串。

关于c# - 读取流正在改变它的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com