C#DES算法實(shí)例解析
C#DES算法解密實(shí)現(xiàn)之前我們先看看DES工作的基本原理是,其入口參數(shù)有三個(gè):key、data、mode。 key為加密解密使用的密鑰,data為加密解密的數(shù)據(jù),mode為其工作模式。當(dāng)模式為加密模式時(shí),明文按照64位進(jìn)行分組,形成明文組,key用于對(duì)數(shù)據(jù)加密,當(dāng)模式為解密模式時(shí),key用于對(duì)數(shù)據(jù)解密。實(shí)際運(yùn)用中,密鑰只用到了64位中的56位,這樣才具有高的安全性。
C# DES算法特點(diǎn):分組比較短、密鑰太短、密碼生命周期短、運(yùn)算速度較慢。DES工作的基本原理:其入口參數(shù)有三個(gè):key、data、mode。key為加密解密使用的密鑰;data為加密解密的數(shù)據(jù);mode為其工作模式。
C#DES解密實(shí)現(xiàn)函數(shù):
- /// <summary>
- /// 進(jìn)行C#DES算法解密。
- /// </summary>
- /// <param name="pToDecrypt">要解密的以Base64</param>
- /// <returns>已解密的字符串。</returns>
- public string Decrypt(string pToDecrypt,string sKey)
- {
- byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);
- using(DESCryptoServiceProvider des =
- new DESCryptoServiceProvider())
- {
- des.Key=ASCIIEncoding.ASCII.GetBytes(sKey);
- des.IV=ASCIIEncoding.ASCII.GetBytes(sKey);
- System.IO.MemoryStream ms = new System.IO.MemoryStream();
- using(CryptoStream cs = new CryptoStream(
- ms,des.CreateDecryptor(),CryptoStreamMode.Write))
- {
- cs.Write(inputByteArray,0,inputByteArray.Length);
- cs.FlushFinalBlock();
- cs.Close();
- }
- string str = Encoding.UTF8.GetString(ms.ToArray());
- ms.Close();
- return str;
- }
- }
C#DES解密函數(shù)調(diào)用:
- string str = Page.Request.QueryString["str"];
- Page.Response.Write("得到的為:"+Decrypt(str,"abcdefgh"));
C# DES算法解密的基本情況就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# DES算法解密有所幫助。
【編輯推薦】