【发布时间】:2017-05-05 15:11:47
【问题描述】:
让 e = 'password' 我将其转换为 CryptoStream 中的 'as9kio0736'。
让 d = 'as9kio0736' 我将其转换为 '密码流中的密码。
当我将 d 转换回“密码”时,为什么不考虑在 CryptoStream 中写入?
using (MemoryStream msEncrypt = new MemoryStream()) {
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) {
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) {
swEncrypt.Write(plainText);
}
}
}
using (MemoryStream msDecrypt = new MemoryStream(cipherText)) {
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) {
using (StreamReader srDecrypt = new StreamReader(csDecrypt)) {
plaintext = srDecrypt.ReadToEnd();
}
}
}
【问题讨论】:
-
因为你分别从底层流写入,读取?
-
您写入加密流,它会加密并将结果写入 MemoryStream(在您的示例中)。您从加密流中读取 - 它从 MemoryStream 中读取,解密并将结果返回给您。
标签: c# encryption cryptostream