加密、解密字符串時,需要用到加密類和內存流,所以首先需要在命名控件中需要進行引入
static string encryptKey = "Oyea"; //定義秘鑰
public string Encrypt(string str) //加密
{
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//實例化加密對象
byte[] key = Encoding.Unicode.GetBytes(encryptKey);//定義字節數組,用來存儲秘鑰
byte[] data = Encoding.Unicode.GetBytes(str);//定義字節數組,用來要存儲加密的字符串
MemoryStream mStream = new MemoryStream();//實例化內存流對象
//使用內存流實例化加密對象
CryptoStream cStream = new CryptoStream(mStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
cStream.Write(data,0, data.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String( mStream.ToArray());
}
public string DesCrypr(string str)
{
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//定義加密類對象
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Convert.FromBase64String(str);
MemoryStream mStram = new MemoryStream();//實例化內存流對象
CryptoStream cStream = new CryptoStream(mStram, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
cStream.Write(data,0,data.Length);
cStream.FlushFinalBlock();
return Encoding.Unicode.GetString(mStram.ToArray());
}
//MD5加密 不可逆
public string GetMd5(string str) //加密方法
{
string strResult = string.Empty;
//創建實例
MD5 md5 = MD5.Create();
byte[] strByte= Encoding.Default.GetBytes(str); //字符轉換成字符數組
byte[] md5Buffer= md5.ComputeHash(strByte, 0, strByte.Length); //轉換加密數組
for (int i = 0; i < md5Buffer.Length; i++) //循環
{
strResult += md5Buffer[i].ToString("X2"); //自己轉換成16進制
}
return strResult;
}