所有!
我正在使用CryptoStream类,使用memoryStream进行测试。将来,我们将使用网络数据,因此流将是只读的,CanSeek = false。
测试数据大约为750字节。前250个字节是标题,读取正常。第二个250字节是真实的'数据。第三个250字节是包含验证值的预告片,例如流的hmac。
这是代码的剪辑。我在250位置并要求CryptoStream.Read获取250个字节。返回250个字节,但输入位置现在位于流的末尾。有什么想法吗?
byteCount = cs.Read(outputBuffer, 0, bytesToRead)
00005001 inStream.Position = 256
00005002 inStream.Length = 768
00005003 bytesToRead = 256
00005004 bytesLeft = 256
00005010 Invoking cs.Read(outputBuffer, 0, bytesToRead)
00005011 inStream.Position = 768
00005012 inStream.Length = 768
00005013 bytesToRead = 256
00005014 bytesLeft = 0
00005015 byteCount = 256
提前感谢您的帮助!