RSA 是最常见的非对称加密算法:公钥可以公开用于加密与验签,私钥必须保密用于解密与签名。这个工具在浏览器本地生成密钥对,并把加密解密、签名验签两组操作放在同一页面,方便完成一次完整的联调。
加密解密页签使用公钥加密、私钥解密,填充方式可选 RSA-OAEP(SHA-256)或 PKCS#1 v1.5。RSA 只能加密较短数据,页面会按当前密钥位数与填充方式提示最大可加密字节数:OAEP 大约是密钥字节数减 66,PKCS#1 v1.5 大约是减 11;数据超长时会直接给出提示,建议改为混合加密,即用 AES 加密数据、用 RSA 加密 AES 密钥。
签名验签页签使用私钥签名、公钥验签,算法可选 RSA-PSS(SHA-256)或 PKCS#1 v1.5。签名结果以 Base64 输出,可一键填入验签框复核,验签结果明确给出签名有效或无效。页面同时提醒加解密与签名验签用途不同,请勿混用。
密钥生成与所有运算依赖浏览器提供的 WebCrypto 接口,该接口只在安全上下文可用,因此需要在 HTTPS 环境下使用;生成较大位数密钥时页面会显示生成中的等待状态。
密钥对在浏览器本地生成,私钥与明文不会上传服务器,也不会被保存。由于浏览器环境不适合托管生产密钥,请只把这里生成的密钥用于测试与学习;如果只是需要转换已有密钥的格式,请使用 RSA 密钥格式转换工具。
评论 0