Csharp/C#教程:C#实现对AES加密和解密的方法分享

AES简介

AES(TheAdvancedEncryptionStandard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。

AES是一个新的可以用于保护电子数据的加密算法。明确地说,AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。以下是我经过整理的代码,希望对大家有所帮助:

代码如下:
///<summary>
///ASE加解密
///</summary>
publicclassAESHelper
{
   ///<summary>
   ///获取密钥
   ///</summary>
   privatestaticstringKey
   {
       get
       {
           return”abcdef1234567890″;   ////必须是16位
       }
   }

   //默认密钥向量
   privatestaticbyte[]_key1={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF,0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};

   ///<summary>
   ///AES加密算法
   ///</summary>
   ///<paramname=”plainText”>明文字符串</param>
   ///<returns>将加密后的密文转换为Base64编码,以便显示</returns>
   publicstaticstringAESEncrypt(stringplainText)
   {
       //分组加密算法
       SymmetricAlgorithmdes=Rijndael.Create();
       byte[]inputByteArray=Encoding.UTF8.GetBytes(plainText);//得到需要加密的字节数组
       //设置密钥及密钥向量
       des.Key=Encoding.UTF8.GetBytes(Key);
       des.IV=_key1;
       byte[]cipherBytes=null;
       using(MemoryStreamms=newMemoryStream())
       {
           using(CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write))
           {
               cs.Write(inputByteArray,0,inputByteArray.Length);
               cs.FlushFinalBlock();
               cipherBytes=ms.ToArray();//得到加密后的字节数组
               cs.Close();
               ms.Close();
           }
       }
       returnConvert.ToBase64String(cipherBytes);
   }

   ///<summary>
   ///AES解密
   ///</summary>
   ///<paramname=”cipherText”>密文字符串</param>
   ///<returns>返回解密后的明文字符串</returns>
   publicstaticstringAESDecrypt(stringshowText)
   {
       byte[]cipherText=Convert.FromBase64String(showText);

       SymmetricAlgorithmdes=Rijndael.Create();
       des.Key=Encoding.UTF8.GetBytes(Key);
       des.IV=_key1;
       byte[]decryptBytes=newbyte[cipherText.Length];
       using(MemoryStreamms=newMemoryStream(cipherText))
       {
           using(CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Read))
           {
               cs.Read(decryptBytes,0,decryptBytes.Length);
               cs.Close();
               ms.Close();
           }
       }
       returnEncoding.UTF8.GetString(decryptBytes).Replace(“”,””);  ///将字符串后尾的’’去掉
   }
}

Key的值可以放在config文件中,也可放入数据库中。

您可能感兴趣的文章:C#实现的AES加密解密完整实例c#多种加解密示例(md5加密解密)C#的3DES加密解密算法实例代码基于C#对用户密码使用MD5加密与解密C#编写的Base64加密和解密类C#编写DES加密、解密类C#自定义RSA加密解密及RSA签名和验证类实例C#实现对文件进行加密解密的方法C#最简单的字符串加密解密方法C#开发中经常用的加密解密方法示例

标签: 方法 加密

VC小技巧汇总之控件技巧

VC小技巧汇总之对话框技巧

上述就是C#学习教程:C#实现对AES加密和解密的方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/904591.html

(0)
上一篇 2021年10月21日
下一篇 2021年10月21日

精彩推荐