CoderTools

RSA加密/解密工具

公钥加密、私钥解密,支持密钥生成和数字签名

关于RSA加密

RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年发明。RSA是目前应用最广泛的公钥加密算法之一,被广泛应用于数据加密、数字签名和密钥交换。

RSA的安全性基于大整数分解的困难性。它使用一对密钥:公钥用于加密,私钥用于解密。公钥可以公开分发,而私钥必须保密。

功能特点

  • 密钥对生成:支持1024、2048、4096位密钥长度
  • 公钥加密:使用公钥加密敏感数据
  • 私钥解密:使用私钥解密加密数据
  • 数字签名:使用私钥对消息进行签名
  • 签名验证:使用公钥验证签名的真实性
  • 支持多种哈希算法:SHA-1、SHA-256、SHA-384、SHA-512
  • 填充模式选择:支持OAEP(推荐)和PKCS#1 v1.5(传统兼容)
  • 多格式支持:输入/输出支持文本、Base64、Hex等多种格式

密钥长度选择

选择合适的密钥长度对于安全性和性能至关重要:

  • 1024-bit: 1024位:不推荐用于新系统,可能在数年内被破解
  • 2048-bit: 2048位:当前推荐的最小长度,适合大多数应用
  • 4096-bit: 4096位:提供最高安全性,但加密/解密速度较慢

填充模式

本工具支持两种RSA填充模式,可根据安全需求和兼容性要求选择:

  • OAEP: 最优非对称加密填充,提供语义安全性,可防止选择密文攻击。推荐用于新系统。
  • PKCS#1 v1.5: 传统填充模式,存在已知的Bleichenbacher攻击漏洞。仅建议在需要与旧系统兼容时使用。

格式选项

本工具支持多种数据格式,方便与不同系统进行交互:

  • 文本: 直接输入/输出UTF-8文本,适合处理普通字符串
  • Base64: Base64编码格式,常用于网络传输和存储二进制数据
  • Hex: 十六进制格式,便于查看和调试二进制数据

使用场景

  • 安全通信:加密敏感数据后传输
  • 数字签名:验证消息的真实性和完整性
  • 密钥交换:安全地交换对称密钥
  • 身份认证:验证发送者身份
  • 软件许可:生成和验证许可证

安全建议

  • 使用至少2048位的密钥长度
  • 妥善保管私钥,不要通过不安全的渠道传输
  • 定期更换密钥对
  • 对于高度敏感的数据,考虑使用4096位密钥
  • 结合对称加密使用(混合加密)处理大量数据

RSA的限制

  • RSA只能加密有限长度的数据(取决于密钥长度和填充模式)
  • RSA加密/解密比对称加密慢得多
  • 通常用于加密对称密钥而非直接加密大量数据

参考资料