C#加密解密程序例子.docx
- 文档编号:18099167
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:13
- 大小:17.62KB
C#加密解密程序例子.docx
《C#加密解密程序例子.docx》由会员分享,可在线阅读,更多相关《C#加密解密程序例子.docx(13页珍藏版)》请在冰点文库上搜索。
C#加密解密程序例子
1、方法一(不可逆加密)
publicstringEncryptPassword(stringPasswordString,stringPasswordFormat)
{
string encryptPassword=null;
if(PasswordFormat="SHA1"){
encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString
"SHA1");
}
elseif(PasswordFormat="MD5")
{encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString
"MD5");
}
returnencryptPassword;
}
2、方法二(可逆加密)
publicinterfaceIBindesh
{
stringencode(stringstr);
stringdecode(stringstr);
}
publicclassEncryptionDecryption:
IBindesh
{
publicstringencode(stringstr)
{
stringhtext="";
for(inti=0;i { htext=htext+(char)(str[i]+10-1*2); } returnhtext; } publicstringdecode(stringstr) { stringdtext=""; for(inti=0;i { dtext=dtext+(char)(str[i]-10+1*2); } returndtext; } 3、方法三(可逆加密) conststringKEY_64="VavicApp";//注意了,是8个字符,64位 conststringIV_64="VavicApp"; publicstringEncode(stringdata) { byte[]byKey=System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); byte[]byIV=System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); DESCryptoServiceProvidercryptoProvider=newDESCryptoServiceProvider(); inti=cryptoProvider.KeySize; MemoryStreamms=newMemoryStream(); CryptoStreamcst=newCryptoStream(ms,cryptoProvider.CreateEncryptor(byKey, byIV),CryptoStreamMode.Write); StreamWritersw=newStreamWriter(cst); sw.Write(data); sw.Flush(); cst.FlushFinalBlock(); sw.Flush(); returnConvert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length); } publicstringDecode(stringdata) { byte[]byKey=System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64); byte[]byIV=System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64); byte[]byEnc; try { byEnc=Convert.FromBase64String(data); } catch { returnnull; } DESCryptoServiceProvidercryptoProvider=newDESCryptoServiceProvider(); MemoryStreamms=newMemoryStream(byEnc); CryptoStreamcst=newCryptoStream(ms,cryptoProvider.CreateDecryptor(byKey, byIV),CryptoStreamMode.Read); StreamReadersr=newStreamReader(cst); returnsr.ReadToEnd(); } 4、MD5不可逆加密 (32位加密) publicstringGetMD5(strings,string_input_charset) { /**//**//**//// ///与ASP兼容的MD5加密算法 /// MD5md5=newMD5CryptoServiceProvider(); byte[]t=md5.ComputeHash(Encoding.GetEncoding(_input_charset).GetBytes(s)); StringBuildersb=newStringBuilder(32); for(inti=0;i { sb.Append(t[i].ToString("x").PadLeft(2,'0')); } returnsb.ToString(); } (16位加密) publicstaticstringGetMd5Str(stringConvertString) { MD5CryptoServiceProvidermd5=newMD5CryptoServiceProvider(); stringt2= BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)),4,8); t2=t2.Replace("-",""); returnt2; } 5、加解文本文件 //加密文件 privatestaticvoidEncryptData(StringinName,StringoutName,byte[]desKey,byte[] desIV) { //Createthefilestreamstohandletheinputandoutputfiles. FileStreamfin=newFileStream(inName,FileMode.Open,FileAccess.Read); FileStreamfout=newFileStream(outName,FileMode.OpenOrCreate,FileAccess.Write); fout.SetLength(0); //Createvariablestohelpwithreadandwrite. byte[]bin=newbyte[100];//Thisisintermediatestoragefortheencryption. longrdlen=0; //Thisisthetotalnumberofbyteswritten. longtotlen=fin.Length; //Thisisthetotallengthoftheinputfile. intlen; //Thisisthenumberofbytestobewrittenatatime. DESdes=newDESCryptoServiceProvider(); CryptoStreamencStream=newCryptoStream(fout,des.CreateEncryptor(desKey,desIV), CryptoStreamMode.Write); //Readfromtheinputfile,thenencryptandwritetotheoutputfile. while(rdlen { len=fin.Read(bin,0,100); encStream.Write(bin,0,len); rdlen=rdlen+len; } encStream.Close(); fout.Close(); fin.Close(); } //解密文件 privatestaticvoidDecryptData(StringinName,StringoutName,byte[]desKey,byte[] desIV) { //Createthefilestreamstohandletheinputandoutputfiles. FileStreamfin=newFileStream(inName,FileMode.Open,FileAccess.Read); FileStreamfout=newFileStream(outName,FileMode.OpenOrCreate,FileAccess.Write); fout.SetLength(0); //Createvariablestohelpwithreadandwrite. byte[]bin=newbyte[100];//Thisisintermediatestoragefortheencryption. longrdlen=0; //Thisisthetotalnumberofbyteswritten. longtotlen=fin.Length; //Thisisthetotallengthoftheinputfile. intlen; //Thisisthenumberofbytestobewrittenatatime. DESdes=newDESCryptoServiceProvider(); CryptoStreamencStream=newCryptoStream(fout,des.CreateDecryptor(desKey,desIV), CryptoStreamMode.Write); //Readfromtheinputfile,thenencryptandwritetotheoutputfile. while(rdlen { len=fin.Read(bin,0,100); encStream.Write(bin,0,len); rdlen=rdlen+len; } encStream.Close(); fout.Close(); fin.Close(); } 6、 usingSystem; usingSystem.Collections.Generic; usingSystem.Text; usingSystem.Security.Cryptography; usingSystem.IO; namespaceComponent { publicclassSecurity { publicSecurity() { } //默认密钥向量 privatestaticbyte[]Keys={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF}; /**//**//**//**//**//**//**//// ///DES加密字符串 /// /// /// /// 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; } } /**//**//**//**//**//**//**//// ///DES解密字符串 /// /// /// /// 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; } } } } C#一个加密解密的方法 usingSystem; publicinterfaceIBindesh { stringencode(stringstr); stringdecode(stringstr); } namespaceEncryptionDecryption { /// ///加密解密 /// publicclassEncryptionDecryption: IBindesh { publicstringencode(stringstr) { stringhtext=""; for(inti=0;i { htext=htext+(char)(str[i]+10-1*2); } returnhtext; } publicstringdecode(stringstr) { stringdtext=""; for(inti=0;i { dtext=dtext+(char)(str[i]-10+1*2); } returndtext; } } publicclasstest { publicstaticvoidaa() { EncryptionDecryptioninter=newEncryptionDecryption(); Console.WriteLi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 加密 解密 程序 例子