当前位置:   article > 正文

C#常用加密解密方法(AES加密解密)_c# aes加解密

c# aes加解密

在日常开发过程中,总会遇到需要加密解密的需求,这里我整理了C#常用的加密解密方法分享给大家。

先看看加密的基本概念:

"加密",是一种限制对网络上传输数据的访问权的技术。原始数据(也称为明文,plaintext)被加密设备(硬件或软件)和密钥加密而产生的经过编码的数据称为密文(ciphertext)。将密文还原为原始明文的过程称为解密,它是加密的反向处理,但解密者必须利用相同类型的加密设备和密钥对密文进行解密。

加密的基本功能包括:

1. 防止不速之客查看机密的数据文件;

2. 防止机密数据被泄露或篡改;

3. 防止特权用户(如系统管理员)查看私人数据文件;

4. 使入侵者不能轻易地查找一个系统的文件。

 一、本节摘要

本节主要分享AES加密解密:  AES算法基于排列和置换运算,排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。

        AES 使用几种不同的方法来执行排列和置换运算。AES是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。  

二、源码分享      

  1. /// <summary>
  2. /// AES 加密
  3. /// </summary>
  4. /// <param name="str">明文(待加密)</param>
  5. /// <param name="key">密文</param>
  6. /// <returns></returns>
  7. public string AesEncrypt(string str, string key)
  8. {
  9. if (string.IsNullOrEmpty(str)) return null;
  10. Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
  11. RijndaelManaged rm = new RijndaelManaged
  12. {
  13. Key = Encoding.UTF8.GetBytes(key),
  14. Mode = CipherMode.ECB,
  15. Padding = PaddingMode.PKCS7
  16. };
  17. ICryptoTransform cTransform = rm.CreateEncryptor();
  18. Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
  19. return Convert.ToBase64String(resultArray);
  20. }
  21. /// <summary>
  22. /// AES 解密
  23. /// </summary>
  24. /// <param name="str">明文(待解密)</param>
  25. /// <param name="key">密文</param>
  26. /// <returns></returns>
  27. public string AesDecrypt(string str, string key)
  28. {
  29. if (string.IsNullOrEmpty(str)) return null;
  30. Byte[] toEncryptArray = Convert.FromBase64String(str);
  31. RijndaelManaged rm = new RijndaelManaged
  32. {
  33. Key = Encoding.UTF8.GetBytes(key),
  34. Mode = CipherMode.ECB,
  35. Padding = PaddingMode.PKCS7
  36. };
  37. ICryptoTransform cTransform = rm.CreateDecryptor();
  38. Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
  39. return Encoding.UTF8.GetString(resultArray);
  40. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/850560
推荐阅读
相关标签
  

闽ICP备14008679号