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-2048ECC P-256SM2-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算法。