应使用 RSA.Create() 创建 RSA 实例,避免过时的 RSACryptoServiceProvider;密钥导出用 ExportPkcs8PrivateKey/ExportSubjectPublicKeyInfo;加密须用 OAEP-SHA256 且校验明文长度;签名用 SignData/VerifyData 并指定 SHA256 和 PKCS1;私钥严禁明文存储。用 RSA.Create() 创建实例,别碰过时的 RSACryptoServiceProvider新版 .NET(.NET Core 2.0+ / .NET 5+)里 RSACryptoServiceProvider 已标记为过时,它依赖 Windows CryptoAPI,跨平台不兼容,且默认密钥大小受限(比如老版本只支持最多 16384 位但实际常卡在 4096)。直接用 RSA.Create() 是唯一推荐路径------它自动适配当前运行时的最优实现(Windows 上走 CNG,Linux/macOS 走 OpenSSL)。常见错误:硬编码 new RSACryptoServiceProvider(2048),跑在 Linux 容器里直接抛 PlatformNotSupportedException。RSA.Create(2048) 创建新密钥对;需要持久化时调用 ExportPkcs8PrivateKey()(私钥)或 ExportSubjectPublicKeyInfo()(公钥),二进制字节流,不是 PEM 字符串如果必须读 PEM 格式(如 OpenSSL 生成的 id_rsa.pub),得先用第三方库(如 BouncyCastle)转,.NET 原生不解析 PEM 封装密钥长度选 2048 足够多数场景;3072 更稳妥;4096 增加开销,加密/解密耗时明显上升(尤其服务端高频解密时)公钥加密必须用 Encrypt() + OAEP SHA256,别用 PKCS1PKCS1 填充模式已被证明存在 Bleichenbacher 攻击风险,.NET 默认仍保留但它不该出现在新代码里。OAEP 是唯一安全选择,且必须显式指定哈希算法------new RSAEncryptionPadding.OaepSHA256(),不能只写 RSAEncryptionPadding.Oaep(会默认用 SHA1,而 SHA1 已不安全)。典型翻车现场:传入 Encoding.UTF8.GetBytes("hello") 直接加密,结果解密失败------RSA 对明文长度敏感,2048 位密钥下 OAEP-SHA256 最多只能加密 190 字节左右数据。超长内容得先用 AES 加密,再用 RSA 加密 AES 密钥(即混合加密)。加密前务必检查明文长度:rsa.KeySize / 8 - 42(OAEP-SHA256)或 rsa.KeySize / 8 - 11(PKCS1,不推荐)公钥加密仅适合小数据(如会话密钥、token ID),绝不要拿来加密用户上传的 PDF 或 JSON解密方必须用同一私钥 + 同样填充方式,否则抛 CryptographicException:"The parameter is incorrect."签名用 SignData(),验签用 VerifyData(),别混淆加密和签名接口RSA 签名不是"用私钥加密",而是基于摘要的数学运算。SignData() 内部自动做哈希(如 SHA256)再签名,VerifyData() 自动复现同样哈希过程。手动先哈希再调 SignHash() 容易出错,且失去 .NET 对哈希算法绑定的保护。 Tellers AI Tellers是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。
相关推荐
databook4 分钟前
异常值检测与处理方法总结千里码aicood6 分钟前
面向智能助理的多轮医疗对话生成系统开发SelectDB7 分钟前
从 ClickHouse 迁移到 Doris:SQL 兼容、同步与验证清单(实战笔记)MC皮蛋侠客8 分钟前
OPC UA 系列(一):标准全景与 Python 最小闭环——让第一条设备数据流动起来用户37215742613510 分钟前
使用 Python 提取 Word 文档中的表格数据有味道的男人13 分钟前
得物详情 API|支持实时价格、成色、鉴别服务数据小溪学编程17 分钟前
Java BufferedReader 详解:从基础用法到性能优化SelectDB24 分钟前
Doris 还是 ClickHouse?一张表说清 6 个关键差异(实战笔记)2601_9623004732 分钟前
基于Python与Tkinter的ADB Monkey自动化测试脚本开发SamChan9042 分钟前
PDF翻译后的格式完整性校验:用Python自动比对译文与原文档的表格与段落结构