C#字符串使用密钥进行加解密
第一个为大家分享的是C#字符串使用密钥进行加解密代码,具体内容如下
publicclassDesEncrypt { ///<summary> ///算法偏移量 ///</summary> conststringm_IV="12345678"; ///<summary> ///功能描述:根据输入的密钥生成8位密钥 ///作者:爱给模板网2gei.cn ///创建日期:2015-07-2017:25:26 ///</summary> ///<paramname="strkey">strkey</param> ///<returns>8位密钥</returns> privatestaticstringGetKey(stringstrkey) { if(string.IsNullOrEmpty(strkey)) { strkey="InfoColl"; } if(strkey.Length%8==0) { returnstrkey; } else { returnGetKey(strkey+"0"); } } ///<summary> ///功能描述:加密字符串 ///作者:爱给模板网2gei.cn ///创建日期:2015-07-2017:18:31 ///任务编号: ///</summary> ///<paramname="strSourceString">原字符串</param> ///<paramname="strKey">密钥</param> ///<returns>加密后的字符串</returns> publicstaticstringEncrypt(stringstrSourceString,stringstrKey) { strKey=GetKey(strKey); byte[]btKey=Encoding.UTF8.GetBytes(strKey); byte[]btIV=Encoding.UTF8.GetBytes(m_IV); DESCryptoServiceProviderdes=newDESCryptoServiceProvider(); using(MemoryStreamms=newMemoryStream()) { try { byte[]inData=Encoding.UTF8.GetBytes(strSourceString); using(CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(btKey,btIV),CryptoStreamMode.Write)) { cs.Write(inData,0,inData.Length); cs.FlushFinalBlock(); } returnConvert.ToBase64String(ms.ToArray()); } catch { returnstrSourceString; } } } ///<summary> ///功能描述:解密字符串 ///作者:爱给模板网2gei.cn ///创建日期:2015-07-2017:18:49 ///任务编号: ///</summary> ///<paramname="strEncryptedString">原字符串</param> ///<paramname="strKey">密钥</param> ///<returns>解密后的字符串</returns> publicstaticstringDecrypt(stringstrEncryptedString,stringstrKey) { strKey=GetKey(strKey); byte[]btKey=Encoding.UTF8.GetBytes(strKey); byte[]btIV=Encoding.UTF8.GetBytes(m_IV); DESCryptoServiceProviderdes=newDESCryptoServiceProvider(); using(MemoryStreamms=newMemoryStream()) { try { byte[]inData=Convert.FromBase64String(strEncryptedString); using(CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(btKey,btIV),CryptoStreamMode.Write)) { cs.Write(inData,0,inData.Length); cs.FlushFinalBlock(); } returnEncoding.UTF8.GetString(ms.ToArray()); } catch { returnstrEncryptedString; } } } }
C#字符串加密和解密
usingSystem.Security.Cryptography; usingSystem.IO; //默认密钥向量 privatestaticbyte[]Keys={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF}; ///<summary> ///DES加密字符串 ///</summary> ///<paramname="encryptString">待加密的字符串</param> ///<paramname="encryptKey">加密密钥,要求为8位</param> ///<returns>加密成功返回加密后的字符串,失败返回源串</returns> publicstaticstringEncryptDES(stringencryptString,stringencryptKey) { try { byte[]rgbKey=Encoding.UTF8.GetBytes(encryptKey.Substring(0,8));//转换为字节 byte[]rgbIV=Keys; byte[]inputByteArray=Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProviderdCSP=newDESCryptoServiceProvider();//实例化数据加密标准 MemoryStreammStream=newMemoryStream();//实例化内存流 //将数据流链接到加密转换的流 CryptoStreamcStream=newCryptoStream(mStream,dCSP.CreateEncryptor(rgbKey,rgbIV),CryptoStreamMode.Write); cStream.Write(inputByteArray,0,inputByteArray.Length); cStream.FlushFinalBlock(); returnConvert.ToBase64String(mStream.ToArray()); } catch { returnencryptString; } } ///<summary> ///DES解密字符串 ///</summary> ///<paramname="decryptString">待解密的字符串</param> ///<paramname="decryptKey">解密密钥,要求为8位,和加密密钥相同</param> ///<returns>解密成功返回解密后的字符串,失败返源串</returns> publicstaticstringDecryptDES(stringdecryptString,stringdecryptKey) { try { byte[]rgbKey=Encoding.UTF8.GetBytes(decryptKey); byte[]rgbIV=Keys; byte[]inputByteArray=Convert.FromBase64String(decryptString); DESCryptoServiceProviderDCSP=newDESCryptoServiceProvider(); MemoryStreammStream=newMemoryStream(); CryptoStreamcStream=newCryptoStream(mStream,DCSP.CreateDecryptor(rgbKey,rgbIV),CryptoStreamMode.Write); cStream.Write(inputByteArray,0,inputByteArray.Length); cStream.FlushFinalBlock(); returnEncoding.UTF8.GetString(mStream.ToArray()); } catch { returndecryptString; } } stringEncryptStr=EncryptDESString.EncryptDES("aaaaaaaaaa","ssssssss");//返回加密后的字符串 stringDecryptStr=EncryptDESString.DecryptDES(EncryptStr,"ssssssss");//解密字符串
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。