废话少说,直接上代码。
MD5:
public static string GenerateMD5(string txt) //MD5
{
using (MD5 mi = MD5.Create())
{
byte[] buffer = Encoding.Default.GetBytes(txt);
byte[] newBuffer = mi.ComputeHash(buffer);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < newBuffer.Length; i++)
{
builder.Append(newBuffer[i].ToString("x2"));
}
return builder.ToString();
}
}
SHA256:
public static string Sha256(string data) //SHA256
{
byte[] bytes = Encoding.Default.GetBytes(data);
byte[] hash = SHA256.Create().ComputeHash(bytes);
StringBuilder builder = new StringBuilder();
for(int i = 0; i < hash.Length; i++)
{
builder.Append(hash[i].ToString("x2"));
}
return builder.ToString();
}
AES:
private static string aes_iv="0000000000000000"; //AES的加密向量
public string AESDecrypt(string text, string key) //AES解密
{
key = key.PadRight(32, ' ');
RijndaelManaged aes = new RijndaelManaged();
byte[] iv = Encoding.UTF8.GetBytes(aes_iv.Substring(0, 16));
aes.Key = Encoding.UTF8.GetBytes(key.Substring(0, 32));
aes.Mode = GetCipherMode();
aes.Padding = GetPaddingMode();
aes.IV = iv;
ICryptoTransform rijndaelDecrypt = aes.CreateDecryptor();
byte[] inputData = Convert.FromBase64String(text);
byte[] xbuff = rijndaelDecrypt.TransformFinalBlock(inputData, 0, inputData.Length);
return Encoding.UTF8.GetString(xbuff);
}
public string AESEncrypt(string ciphertext, string key) //AES加密
{
key = key.PadRight(32, ' ');
SymmetricAlgorithm aes = new RijndaelManaged();
byte[] iv = Encoding.UTF8.GetBytes(aes_iv.Substring(0, 16));
aes.Key = Encoding.UTF8.GetBytes(key.Substring(0, 32));
aes.Mode = GetCipherMode();
aes.Padding = GetPaddingMode();
aes.IV = iv;
ICryptoTransform rijndaelEncrypt = aes.CreateEncryptor();
byte[] inputdata = Encoding.UTF8.GetBytes(ciphertext);
byte[] encryptedData = rijndaelEncrypt.TransformFinalBlock(inputdata, 0, inputdata.Length);
return Convert.ToBase64String(encryptedData);
}
当然,以上这些,都需要:
using System.Security.Cryptography;