RSA/SM2/ECC在线加密解密
处理结果
💡 非对称加密工具使用指南
什么是非对称加密?
非对称加密(也称公钥加密)使用一对密钥:公钥用于加密,私钥用于解密。公钥可以公开分享,而私钥必须保密。这种机制解决了对称加密中密钥分发的难题,是现代网络安全的基础。
支持的加密算法
RSA (Rivest-Shamir-Adleman)
密钥长度:1024 / 2048 / 3072 / 4096 位
特点:最经典的非对称加密算法,广泛应用于各种场景
安全性:基于大数分解难题,2048位以上密钥目前安全
性能:加密速度较慢,适合小数据量或密钥交换
推荐场景:数字签名、HTTPS证书、密钥交换、身份认证
ECC (Elliptic Curve Cryptography)
椭圆曲线:P-256 (256位) / P-384 (384位) / P-521 (521位)
特点:现代加密算法,密钥长度短但安全性高
安全性:基于椭圆曲线离散对数问题,256位ECC ≈ 3072位RSA
性能:密钥生成和加密速度快,密钥存储占用空间小
推荐场景:移动设备、物联网、区块链、现代Web应用
SM2 (国密算法)
密钥长度:256位(固定)
特点:中国商用密码标准,基于椭圆曲线的国密算法
安全性:符合国家密码管理局标准,与256位ECC安全性相当
密文顺序:支持C1C3C2(新标准)和C1C2C3(旧标准)
推荐场景:政务系统、金融机构、企业应用的国密合规需求
密钥长度选择建议
RSA-2048 (推荐)
安全级别:高(112位安全强度)
适用场景:一般商业应用、HTTPS证书、代码签名
有效期:预计安全至2030年
性能:平衡安全性和性能,是目前最常用的选择
RSA-3072
安全级别:很高(128位安全强度)
适用场景:企业级应用、长期证书、敏感数据
有效期:预计安全至2040年以后
性能:比2048位慢约2倍,但提供更高安全性
RSA-4096
安全级别:极高(140位安全强度)
适用场景:根证书、政府机密、金融核心系统
有效期:长期安全保障
性能:比2048位慢约4-6倍,适合长期存储而非频繁加密
ECC P-256 (推荐)
安全级别:高(128位安全强度,相当于RSA-3072)
适用场景:移动应用、物联网、现代Web服务
密钥大小:公钥仅65字节,密钥存储和传输高效
性能:密钥生成和签名速度快,资源占用少
ECC P-384 / P-521
安全级别:极高(192位/256位安全强度)
适用场景:政府机密、军事应用、超高安全需求
特点:提供更高安全性,但性能略有下降
SM2-256 (国密)
安全级别:高(128位安全强度)
适用场景:国密合规的政务、金融、企业系统
标准:符合GB/T 32918标准,国家密码管理局认证
特点:密钥长度固定256位,不支持其他长度
非对称加密应用场景
🔐 密钥交换
使用非对称加密传输对称加密的密钥,结合两种加密方式的优势
✍️ 数字签名
使用私钥签名,公钥验证,确保数据来源可信和完整性
🌐 HTTPS/TLS
网站SSL证书使用RSA或ECC进行身份验证和密钥协商
📧 邮件加密
PGP/GPG邮件加密,确保邮件内容只有接收者能解密
🔑 身份认证
SSH登录、API身份验证、OAuth等使用公钥认证
💰 区块链
比特币、以太坊等区块链使用ECC进行交易签名
📱 移动支付
支付宝、微信支付等使用非对称加密保护交易安全
🇨🇳 国密合规
政务系统、金融机构使用SM2算法满足国密标准要求
RSA vs ECC vs SM2 对比
🔐 安全性对比
RSA-2048 ≈ ECC P-256 ≈ SM2-256 ≈ 112-128位安全强度
ECC和SM2在相同安全强度下密钥长度更短,抗量子计算能力相当
⚡ 性能对比
ECC/SM2:密钥生成快,加密/解密速度中等,资源占用少
RSA:密钥生成慢,公钥加密快,私钥解密慢,密钥较大
💾 密钥大小
RSA-2048:公钥256字节,私钥1192字节
ECC P-256:公钥65字节,私钥32字节(压缩后)
SM2-256:公钥65字节,私钥32字节
🌍 兼容性
RSA:兼容性最好,所有平台和语言都支持
ECC:现代系统广泛支持,移动端优选
SM2:国内支持完善,国际兼容性较弱
📋 标准化
RSA:PKCS#1、PKCS#8等国际标准
ECC:NIST FIPS 186、SEC标准
SM2:GB/T 32918中国国家标准
🎯 选择建议
通用场景:RSA-2048或ECC P-256
移动/物联网:ECC P-256(密钥小,性能好)
国密合规:SM2-256(政务、金融必选)
高安全需求:RSA-4096或ECC P-384/P-521
使用注意事项
⚠️ 明文长度限制
RSA限制:最大明文长度 = (密钥长度/8) - 11字节
例如RSA-2048最多加密245字节,超长数据请使用混合加密
ECC/SM2限制:建议单次加密不超过32-64字节
🔑 私钥保护
私钥一旦泄露,所有加密数据都可被解密
建议对私钥进行加密存储,使用硬件安全模块(HSM)保护
定期轮换密钥对,避免长期使用同一密钥
🔄 混合加密方案
对于大文件加密,推荐使用混合加密:
1. 生成随机对称密钥(如AES-256)
2. 使用对称密钥加密数据
3. 使用公钥加密对称密钥
4. 传输加密后的数据和密钥
📝 密钥格式
PEM格式:Base64编码,带头尾标记,兼容性最好
HEX格式:16进制编码,紧凑但需要额外处理
PKCS#1 vs PKCS#8:RSA推荐使用PKCS#8标准格式
常见问题
❓ 为什么每次加密结果都不同?
非对称加密使用随机填充(Padding),每次加密会产生不同的密文,这是正常的安全特性。
❓ 能否用私钥加密、公钥解密?
理论上可以,但这是数字签名的应用场景。加密通常使用公钥加密、私钥解密。
❓ RSA和ECC哪个更安全?
同等安全强度下两者相当,ECC密钥更短但性能更好,RSA兼容性更广。
❓ 什么时候必须使用SM2?
政务系统、金融机构、涉密单位等需要符合国密标准的场景必须使用SM2算法。