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