可能我有一个愚蠢的问题,但我无法让它发挥作用。我正在根据 C# 中的 MSDN 示例在 F# 中进行 AES 加密\解密:
http://msdn.microsoft.com/en-us/library/system.security.cryptography.aes.aspx
我的加密方法如下:
let EncryptStringToBytesAes (plainText : string) (key : byte[]) (iv : byte[]) =
use aesAlg = Aes.Create()
aesAlg.Key <- key
aesAlg.IV <- iv
// Create a decrytor to perform the stream transform.
let encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV)
// Create the streams used for encryption.
use msEncrypt = new MemoryStream()
use csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)
use swEncrypt = new StreamWriter(csEncrypt)
swEncrypt.Write(plainText)
msEncrypt.ToArray()
问题是这个方法总是返回一个空的字节数组。我没有任何例外。Key 和 IV 是正确的字节数组。似乎 StreamWriter 不工作......
谢谢你的帮助。