• 您當前所在位置:主頁 > 加密技術 > 硬盤加密 >
    聯系智融 / 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.bj-meiling.com/a/jiamijishu/yingpanjiami/2015/0514/340.html
    相關文章推薦

    報價申請
    武漢智融科技有限公司 加密專題 EDS
    技術咨詢
    武漢智融科技有限公司 加密專題 EDS
    關注我們

    武漢智融科技有限公司 加密專題 EDS

    久久久久久久久久久精品