DES可逆加解密


方法:

// DES默認密鑰向量
private static byte[]  Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

///   <summary>
///  DES加密字符串
///   </summary>
///   <param name="encryptString"> 待加密的字符串 </param>
///   <param name="encryptKey"> 加密密鑰,要求為8位 </param>
///   <returns> 加密成功返回加密后的字符串,失敗返回源串 </returns>
public  static  string EncryptDES( string encryptString,  string encryptKey)
{
     try
    {
         byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring( 08));
         byte[] rgbIV = Keys;
         byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
        DESCryptoServiceProvider dCSP =  new DESCryptoServiceProvider();
        MemoryStream mStream =  new MemoryStream();
        CryptoStream cStream =  new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
        cStream.Write(inputByteArray,  0, inputByteArray.Length);
        cStream.FlushFinalBlock();
         return Convert.ToBase64String(mStream.ToArray());
    }
     catch
    {
         return encryptString;
    }
}

///   <summary>
///  DES解密字符串
///   </summary>
///   <param name="decryptString"> 待解密的字符串 </param>
///   <param name="decryptKey"> 解密密鑰,要求為8位,和加密密鑰相同 </param>
///   <returns> 解密成功返回解密后的字符串,失敗返源串 </returns>
public  static  string DecryptDES( string decryptString,  string decryptKey)
{
     try
    {
         byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
         byte[] rgbIV = Keys;
         byte[] inputByteArray = Convert.FromBase64String(decryptString);
        DESCryptoServiceProvider DCSP =  new DESCryptoServiceProvider();
        MemoryStream mStream =  new MemoryStream();
        CryptoStream cStream =  new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
        cStream.Write(inputByteArray,  0, inputByteArray.Length);
        cStream.FlushFinalBlock();
         return Encoding.UTF8.GetString(mStream.ToArray());
    }
     catch
    {
         return decryptString;
    }
}

示例:

string strEncrypt = Common.EncryptDES( " HelloWord "" PengShou ");   // 加密后:4BmYCZV+CyJBRcUI0LxWng==
string strDecrypt = Common.DecryptDES(strEncrypt,  " PengShou ");    // 解密后:HelloWord

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM