您当前所在位置:主页 > 加密技术 > 硬盘加密 >
联系智融 / CONTACT US

客服电话:027-87379468

技术支持:027-87379468

传真:027-87379428

邮箱:gongch@zronggsoft.com

QQ: 点击这里给我发消息 点击这里给我发消息
硬盘加密

一个可逆的C#加密解密算法

发布时间:2015-05-14 15:23
  
  
  一般有两种加密算法:1.像md5,SHA1,等hash算法,是不可逆的。一般数据库存的用户名和密码就用这个。
 
  本文所提到的XXTEA算法,是可逆的,有个key可以加密。
 
  安全方面的东西还蛮多的,说到key,还有什么publickey,privatekey。
 
  可逆加密算法的需求还是比较广的,像加密游戏存档(发现还是无法防止内存修改),加密日志,加密图片等。
 
  方法1.(不可逆加密方法)
 
  publicstringEncryptPassword(stringPasswordString,stringPasswordFormat)
 
  {
 
  stringencryptPassword=null;
 
  if(PasswordFormat="SHA1"){
 
  encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString
 
  ,"SHA1");
 
  }
 
  elseif(PasswordFormat="MD5")
 
  returnencryptPassword;
 
  }
 
  方法2.(可逆加密)
 
  publicinterfaceIBindesh
 
  {
 
  stringencode(stringstr);
 
  stringdecode(stringstr);
 
  }
 
  publicclassEncryptionDecryption:IBindesh
 
  {
 
  publicstringencode(stringstr)
 
  {
 
  stringhtext="";
 
  for(inti=0;i
 
  ///与ASP兼容的MD5加密算法
 
  ///
 
  MD5md5=newMD5CryptoServiceProvider();
 
  byte[]t=md5.ComputeHash(Encoding.GetEncoding(_input_charset)。GetBytes(s));
 
  StringBuildersb=newStringBuilder(32);
 
  for(inti=0;i
 
  ///DES加密字符串
 
  ///
 
  ///待加密的字符串
 
  ///加密密钥,要求为8位
 
  ///加密成功返回加密后的字符串,失败返回源串
 
  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解密字符串
 
  ///
 
  ///待解密的字符串
 
  ///解密密钥,要求为8位,和加密密钥相同
 
  ///解密成功返回解密后的字符串,失败返源串
 
  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;
 
  }
 
  }
 
  }}(本文由武汉智融科技转载)
本文链接:http://www.zrongsoft.com/a/jiamijishu/yingpanjiami/2015/0514/340.html
相关文章推荐

报价申请
武汉智融科技有限公司 加密专题 EDS
技术咨询
武汉智融科技有限公司 加密专题 EDS
关注我们

武汉智融科技有限公司 加密专题 EDS