Oti*_*iel 14 c# string encoding bytearray
我使用此代码来加密字符串(基本上,这是在MSDN上的Rijndael类上给出的示例):
public static String AESEncrypt(String str2Encrypt, Byte[] encryptionKey, Byte[] IV)
{
Byte[] encryptedText;
using (RijndaelManaged rijAlg = new RijndaelManaged())
{
// Use the provided key and IV
rijAlg.Key = encryptionKey;
rijAlg.IV = IV;
// Create a decrytor to perform the stream transform
ICryptoTransform encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV);
// Create the streams used for encryption
using (MemoryStream msEncrypt = new MemoryStream())
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
// Write all data to the stream
swEncrypt.Write(str2Encrypt);
}
encryptedText = msEncrypt.ToArray();
}
}
return Encoding.Default.GetString(encryptedText);
}
Run Code Online (Sandbox Code Playgroud)
我Encoding.Default
用来将字节数组转换为字符串,但我不确定这是一个很好的解决方案.我的目标是将加密文本(例如密码......)存储在文件中.我应该继续使用Encoding.Default
或使用Encoding.UTF8Encoding
或其他什么?
如果将文件移动到不同的操作系统上,当我尝试加密和解密时,这会对存储的值产生负面影响吗?
Jon*_*eet 46
绝对不应该使用编码将任意二进制数据转换为文本.Encoding
是因为你有二进制数据,真正的编码文本 - 这不是.
相反,用于Convert.ToBase64String
将二进制数据编码为文本,然后使用解码Convert.FromBase64String
.