![](/img/trans.png)
[英]Passing Stream from ReadAsStreamAsync as API response and avoiding large in memory objects
[英]Stream chaining in computing a checksum: avoiding memory issues
我有一个连接到xml文件的FileStream
,我想直接将其读入SHA512对象,以便为校验和(不是安全用途)而计算哈希值。
问题是双重的:
我可以将整个文件读取为xml结构,删除节点,然后将其写入流中,然后将其插入SHA512.ComputeHash
,但这会导致性能下降。 我希望能够以某种方式删除节点,作为对流的操作,然后将这些流以某种方式链接在一起,成为可以传递到SHA512.ComputeHash(Stream)
的单个流。
我该怎么做?
using (var hash = new SHA512Cng())
using (var stream = new CryptoStream(Stream.Null, hash, CryptoStreamMode.Write))
using (var writer = XmlWriter.Create(stream))
using (var reader = XmlReader.Create("input.xml"))
{
while (reader.Read())
{
// ... write node to writer ...
}
writer.Flush();
stream.FlushFinalBlock();
var result = hash.Hash;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.