上一篇
在现代软件开发中,C# RSA加密是一种非常重要的安全技术。本文将带你从零开始,手把手教你如何在C#中使用RSA非对称加密来保护你的敏感数据。无论你是刚入门的新手,还是有一定经验的开发者,都能轻松掌握。
RSA是一种非对称加密算法,它使用一对密钥:公钥(Public Key)和私钥(Private Key)。公钥可以公开给任何人用于加密数据,而只有持有私钥的人才能解密这些数据。这种机制非常适合用于安全通信、数字签名等场景。
在开始编码前,请确保你已安装以下环境:
我们首先需要生成一对公钥和私钥。C# 提供了 RSA 类来完成这项工作。
using System;using System.Security.Cryptography;using System.Text;public class RsaHelper{ public static (string publicKey, string privateKey) GenerateKeyPair() { using (var rsa = RSA.Create()) { // 设置密钥长度(建议至少2048位) rsa.KeySize = 2048; // 导出公钥和私钥(以XML格式) string publicKey = rsa.ToXmlString(false); // false 表示只导出公钥 string privateKey = rsa.ToXmlString(true); // true 表示导出私钥 return (publicKey, privateKey); } }} 有了公钥后,我们就可以用它来加密字符串或其他数据。
public static byte[] Encrypt(string plainText, string publicKey){ using (var rsa = RSA.Create()) { rsa.FromXmlString(publicKey); byte[] data = Encoding.UTF8.GetBytes(plainText); // 使用OAEP填充(更安全) return rsa.Encrypt(data, RSAEncryptionPadding.OaepSHA256); }} 只有拥有私钥的一方才能解密被公钥加密的数据。
public static string Decrypt(byte[] cipherData, string privateKey){ using (var rsa = RSA.Create()) { rsa.FromXmlString(privateKey); byte[] decryptedData = rsa.Decrypt(cipherData, RSAEncryptionPadding.OaepSHA256); return Encoding.UTF8.GetString(decryptedData); }} class Program{ static void Main(string[] args) { // 1. 生成密钥对 var (publicKey, privateKey) = RsaHelper.GenerateKeyPair(); // 2. 原始明文 string originalText = "Hello, 这是一段需要加密的敏感信息!"; Console.WriteLine($"原始文本: {originalText}"); // 3. 使用公钥加密 byte[] encryptedData = RsaHelper.Encrypt(originalText, publicKey); Console.WriteLine($"加密后数据长度: {encryptedData.Length} 字节"); // 4. 使用私钥解密 string decryptedText = RsaHelper.Decrypt(encryptedData, privateKey); Console.WriteLine($"解密后文本: {decryptedText}"); // 验证是否一致 Console.WriteLine($"解密成功: {originalText == decryptedText}"); }} RSAEncryptionPadding.OaepSHA256 等安全填充模式,避免使用 PKCS#1 v1.5(易受攻击)。通过本教程,你已经学会了如何在C#中实现RSA非对称加密和解密。这项技术是构建安全应用的基础,广泛应用于登录认证、API通信、数字签名等场景。掌握C#数据加密解密技能,能让你的程序更加安全可靠。
希望这篇RSA加解密教程对你有帮助!如果你有任何问题,欢迎在评论区留言交流。
本文由主机测评网于2025-12-25发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251212423.html