Spiga

如何加密字串

聖哥寫了一組副程式,可以用來將字串加密後 (使用 3DES 加密法),再轉成 Base64 字串,很適合使用在 web.config 中儲存一些重要資料,例如連線字串。

其中的 key 和 iv 兩個參數必須是 128bit 的資料,也就是長度是 16 的 byte 陣列。##ReadMore##

using System.Security.Cryptography
using System.Text

public string EncryptString(string s, byte[] key, byte[] iv)
{
TripleDESCryptoServiceProvider provider =
new TripleDESCryptoServiceProvider();
CryptoAPITransform encryptor = provider.CreateEncryptor(key, iv);

UTF8Encoding utf8 = new UTF8Encoding();
byte[] source = utf8.GetBytes(s);
byte[] target = encryptor.TransformFinalBlock(source, 0, source.Length);

return Convert.ToBase64String(target);
}

public string DecryptString(string s, byte[] key, byte[] iv)
{
TripleDESCryptoServiceProvider provider =
new TripleDESCryptoServiceProvider();
CryptoAPITransform decryptor = provider.CreateDecryptor(key, iv);

UTF8Encoding utf8 = new UTF8Encoding();
byte[] source = Convert.FromBase64String(s);
byte[] target = encryptor.TransformFinalBlock(source, 0, source.Length);

return utf8.GetString(target);
}

0 意見: