DES对称加密算法在.NET Core中的使用

匿名 (未验证) 提交于 2019-12-03 00:32:02

之前写过一篇DES的博客是关于.Net framework的, 经测试,那篇博客在.NET Core中并不适用,下面我就展示如何在.NET core中使用DES加密和解密


        /// <summary>           /// DES加密字符串           /// </summary>           /// <param name="encryptString">待加密的字符串</param>           /// <param name="encryptKey">加密密钥,要求为16位</param>           /// <returns>加密成功返回加密后的字符串,失败返回源串</returns>           public static string EncryptDES(string encryptString, string key)         {             try             {                 byte[] rgbKey = Encoding.UTF8.GetBytes(key);                 //用于对称算法的初始化向量(默认值)。                   byte[] rgbIV = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };                 byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);                 Aes dCSP = Aes.Create();                  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 (Exception ex)             {                 throw ex;             }         }          /// <summary>           /// DES解密字符串           /// </summary>           /// <param name="decryptString">待解密的字符串</param>           /// <param name="key">解密密钥,要求16位</param>           /// <returns></returns>           public static string DecryptDES(string decryptString, string key)         {             try             {                 //用于对称算法的初始化向量(默认值)                   byte[] Keys = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };                 byte[] rgbKey = Encoding.UTF8.GetBytes(key);                 byte[] rgbIV = Keys;                 byte[] inputByteArray = Convert.FromBase64String(decryptString);                 Aes DCSP = Aes.Create();                  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 (Exception ex)             {                 return decryptString;             }         }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!