c#加密算法大全Word文件下载.docx
《c#加密算法大全Word文件下载.docx》由会员分享,可在线阅读,更多相关《c#加密算法大全Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
publicstringSHA1(stringsource)
{
returnFormsAuthentication.HashPasswordForStoringInConfigFile(source,"
SHA1"
);
}
///MD5加密字符串
publicstringMD5(stringsource)
MD5"
;
}
方法二(可逆加密解密):
usingSystem.Security.Cryptography;
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();
returnConvert.ToBase64String(ms.GetBuffer(),0,(int)ms.Length);
publicstringDecode(stringdata)
byte[]byEnc;
try
byEnc=Convert.FromBase64String(data);
catch
returnnull;
MemoryStreamms=newMemoryStream(byEnc);
CryptoStreamcst=newCryptoStream(ms,cryptoProvider.CreateDecryptor(byKey,byIV),CryptoStreamMode.Read);
StreamReadersr=newStreamReader(cst);
returnsr.ReadToEnd();
方法三(MD5不可逆):
//MD5不可逆加密
//32位加密
publicstringGetMD5_32(strings,string_input_charset)
MD5md5=newMD5CryptoServiceProvider();
byte[]t=md5.ComputeHash(Encoding.GetEncoding(_input_charset).GetBytes(s));
StringBuildersb=newStringBuilder(32);
for(inti=0;
i<
t.Length;
i++)
sb.Append(t[i].ToString("
x"
).PadLeft(2,'
0'
));
returnsb.ToString();
//16位加密
publicstaticstringGetMd5_16(stringConvertString)
MD5CryptoServiceProvidermd5=newMD5CryptoServiceProvider();
stringt2=BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)),4,8);
t2=t2.Replace("
-"
"
"
returnt2;
方法四(对称加密):
usingSystem.IO;
privateSymmetricAlgorithmmobjCryptoService;
privatestringKey;
///对称加密类的构造函数
publicSymmetricMethod()
mobjCryptoService=newRijndaelManaged();
Key="
Guz(%&
hj7x89H$yuBI0456FtmaT5&
fvHUFCy76*h%(HilJ$lhj!
y6&
(*jkP87jH7"
///获得密钥
密钥<
privatebyte[]GetLegalKey()
stringsTemp=Key;
mobjCryptoService.GenerateKey();
byte[]bytTemp=mobjCryptoService.Key;
intKeyLength=bytTemp.Length;
if(sTemp.Length>
KeyLength)
sTemp=sTemp.Substring(0,KeyLength);
elseif(sTemp.Length<
sTemp=sTemp.PadRight(KeyLength,'
'
returnASCIIEncoding.ASCII.GetBytes(sTemp);
///获得初始向量IV
初试向量IV<
privatebyte[]GetLegalIV()
stringsTemp="
E4ghj*Ghg7!
rNIfb&
95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&
!
hg4ui%$hjk"
mobjCryptoService.GenerateIV();
byte[]bytTemp=mobjCryptoService.IV;
intIVLength=bytTemp.Length;
IVLength)
sTemp=sTemp.Substring(0,IVLength);
sTemp=sTemp.PadRight(IVLength,'
///加密方法
Source"
待加密的串<
经过加密的串<
publicstringEncrypto(stringSource)
byte[]bytIn=UTF8Encoding.UTF8.GetBytes(Source);
mobjCryptoService.Key=GetLegalKey();
mobjCryptoService.IV=GetLegalIV();
ICryptoTransformencrypto=mobjCryptoService.CreateEncryptor();
CryptoStreamcs=newCryptoStream(ms,encrypto,CryptoStreamMode.Write);
cs.Write(bytIn,0,bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[]bytOut=ms.ToArray();
returnConvert.ToBase64String(bytOut);
///解密方法
待解密的串<
经过解密的串<
publicstringDecrypto(stringSource)
byte[]bytIn=Convert.FromBase64String(Source);
MemoryStreamms=newMemoryStream(bytIn,0,bytIn.Length);
ICryptoTransformencrypto=mobjCryptoService.CreateDecryptor();
CryptoStreamcs=newCryptoStream(ms,encrypto,CryptoStreamMode.Read);
StreamReadersr=newStreamReader(cs);
方法五:
usingSystem.Text;
//默认密钥向量
privatestaticbyte[]Keys={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};
///DES加密字符串
encryptString"
待加密的字符串<
encryptKey"
加密密钥,要求为8位<
加密成功返回加密后的字符串,失败返回源串<
publicstaticstringEncryptDES(stringencryptString,stringencryptKey)
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());
returnencryptString;
///DES解密字符串
decryptString"
待解密的字符串<
decryptKey"
解密密钥,要求为8位,和加密密钥相同<
解密成功返回解密后的字符串,失败返源串<
publicstaticstringDecryptDES(stringdecryptString,stringdecryptKey)
byte[]rgbKey=Encoding.UTF8.GetBytes(decryptKey);
byte[]inputByteArray=Convert.FromBase64String(decryptString);
DESCryptoServiceProviderDCSP=newDESCryptoServiceProvider();
CryptoStreamcStream=newCryptoStream(mStream,DCSP.CreateDecryptor(rgbKey,rgbIV),CryptoStreamMode.Write);
returnEncoding.UTF8.GetString(mStream.ToArray());
returndecryptString;
方法六(文件加密):
//加密文件
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,thenencryptandwritet