当前位置:   article > 正文

c# 文本加密解密

c# 文本加密解密

在C#中实现加密功能,您可以使用.NET框架提供的System.Security.Cryptography命名空间下的多种加密算法类。这里我将给出一个使用AES(Advanced Encryption Standard)对称加密算法的简单示例:

  1. using System;
  2. using System.IO;
  3. using System.Security.Cryptography;
  4. using System.Text;
  5. public class AesEncryptionExample
  6. {
  7. public static void Main()
  8. {
  9. // 加密部分
  10. string plainText = "这是一段需要加密的文本";
  11. byte[] keyBytes = Encoding.UTF8.GetBytes("这是一个16字节的密钥"); // AES密钥必须为16/24/32个字节
  12. byte[] ivBytes = new byte[16]; // 初始化向量,AES要求16个字节
  13. // 使用随机数生成器初始化IV
  14. RandomNumberGenerator.Create().GetBytes(ivBytes);
  15. using (AesManaged aes = new AesManaged())
  16. {
  17. aes.Key = keyBytes;
  18. aes.IV = ivBytes;
  19. ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
  20. using (MemoryStream ms = new MemoryStream())
  21. {
  22. using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
  23. {
  24. using (StreamWriter sw = new StreamWriter(cs))
  25. {
  26. sw.Write(plainText);
  27. }
  28. byte[] cipherTextBytes = ms.ToArray();
  29. Console.WriteLine("加密后的数据:");
  30. Console.WriteLine(Convert.ToBase64String(cipherTextBytes));
  31. }
  32. }
  33. }
  34. // 解密部分
  35. byte[] encryptedData = Convert.FromBase64String("这里是加密后Base64编码的数据");
  36. using (AesManaged aesDecryptor = new AesManaged())
  37. {
  38. aesDecryptor.Key = keyBytes;
  39. aesDecryptor.IV = ivBytes;
  40. ICryptoTransform decryptor = aesDecryptor.CreateDecryptor();
  41. using (MemoryStream msDecrypt = new MemoryStream(encryptedData))
  42. {
  43. using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
  44. {
  45. using (StreamReader srDecrypt = new StreamReader(csDecrypt))
  46. {
  47. string decryptedText = srDecrypt.ReadToEnd();
  48. Console.WriteLine("\n解密后的数据:");
  49. Console.WriteLine(decryptedText);
  50. }
  51. }
  52. }
  53. }
  54. }
  55. }

这个例子展示了如何使用AES加密和解密字符串。注意在实际应用中,密钥应通过安全的方式存储和传递,并且可能需要使用密码派生函数(如Rfc2898DeriveBytes)从用户输入的密码生成密钥和初始化向量。此外,在传输或存储密文时,通常会一起保存IV,以便于解密。

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

闽ICP备14008679号