DES對稱資料加密
/// <summary>
/// DES 加密過程
/// </summary>
/// <param name="dataToEncrypt">待加密資料</param>
/// <param name="DESKey"></param>
/// <returns></returns>
public static string Encrypt(string dataToEncrypt, string DESKey)
{
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
byte[] inputByteArray = Encoding.Default.GetBytes(dataToEncrypt);//把字串放到byte陣列中
des.Key = ASCIIEncoding.ASCII.GetBytes(DESKey); //建立加密物件的金鑰和偏移量
des.IV = ASCIIEncoding.ASCII.GetBytes(DESKey);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:x2}", b);
}
return ret.ToString();
}
}
}
}
/// <summary>
/// DES 解密過程
/// </summary>
/// <param name="dataToDecrypt">待解密資料</param>
/// <param name="DESKey"></param>
/// <returns></returns>
public static string Decrypt(string dataToDecrypt, string DESKey)
{
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
{
byte[] inputByteArray = new byte[dataToDecrypt.Length / 2];
for (int x = 0; x < dataToDecrypt.Length / 2; x++)
{
int i = (Convert.ToInt32(dataToDecrypt.Substring(x * 2, 2), 16));
inputByteArray[x] = (byte)i;
}
des.Key = ASCIIEncoding.ASCII.GetBytes(DESKey); //建立加密物件的金鑰和偏移量,此值重要,不能修改
des.IV = ASCIIEncoding.ASCII.GetBytes(DESKey);
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return System.Text.Encoding.Default.GetString(ms.ToArray());
}
}
}
}
【個人廣告】
希望大家可以支援我的個人微訊號“小遊戲情報局”
相關文章
- 資料加密(對稱加密和非對稱加密)加密
- 對稱加密演算法----DES加密演算法加密演算法
- java使用DES加密方式,實現對資料的加密解密Java加密解密
- Android資料加密之Des加密Android加密
- DES--------Golang對稱加密之模式問題實戰Golang加密模式
- DES/3DES/AES 三種對稱加密演算法在 Java 中的實現3D加密演算法Java
- 對稱加密與非對稱加密加密
- 對稱、非對稱的加密技術是如何對網站資料進行雙重加密?加密網站
- java實現DES資料加密與解密Java加密解密
- 編碼與加密(對稱加密與非對稱加密)加密
- 前後端資料加密傳輸 RSA非對稱加密後端加密
- 對稱加密、非對稱加密、RSA(總結)加密
- DES加密加密
- 對稱加密和非對稱加密(一)初步理解加密
- 資料加密 第四篇:對稱金鑰加密
- 加密原理詳解:對稱式加密VS非對稱式加密加密
- https中的對稱加密和非對稱加密HTTP加密
- 資料加密 第五篇:非對稱金鑰加密
- Android 安全加密:對稱加密Android加密
- Android安全加密:對稱加密Android加密
- Java安全之對稱加密、非對稱加密、數字簽名Java加密
- 對稱加密體系加密
- DES演算法揭秘:資料加密的前沿技術演算法加密
- DES加密詳解加密
- DES加密簡述加密
- Android 安全加密:非對稱加密Android加密
- Android安全加密:非對稱加密Android加密
- 非對稱加密體系加密
- RSA 非對稱加密&解密加密解密
- 非對稱加密與OpenSSL加密
- ssh與非對稱加密加密
- 非對稱加密與 jwt加密JWT
- Linux系統中對稱加密和非對稱加密區別是什麼?Linux加密
- Linux SSH是什麼?對稱加密和非對稱加密有何區別?Linux加密
- 加密解密技術—對稱演算法加密加密解密演算法
- 密碼學之對稱加密密碼學加密
- 關於Javascript的des加密JavaScript加密
- C#DES加密和解密C#加密解密