这个工具适合做什么
RSA加密算法是一种非对称加密技术,广泛应用于数据加密、数字签名、安全通信等领域。RSA使用一对密钥,包括一个公钥和一个私钥。公钥可以公开分享,用于加密数据或验证签名;私钥必须保密,用于解密数据或生成签名。
RSA的签名和验证是使用RSA加密算法进行的一种数字签名机制,用于确保数据的完整性、真实性和不可否认性,可以在数字世界中安全地交换信息和验证身份。
这个页面适合拿来调试 API 签名、检查不同系统之间的 RSA 兼容性,或验证一组 PEM 公私钥是否能正确配合工作。
签名和验证是怎么工作的
RSA的签名:对需要签名的数据内容进行哈希处理,生成一个数据摘要(如使用SHA-256算法),使用私钥对数据摘要进行签名,生成数字签名。
RSA的验证:对接收到的数据内容进行相同的哈希处理,生成一个数据摘要,再使用公钥按对应签名算法验证数字签名,并将验证结果与重新计算的数据摘要进行比对。如果两者一致,说明数据在传输过程中未被篡改,且签名有效;如果不一致,说明数据可能被篡改,或者签名不可靠。
使用时要注意
私钥密码:以-----BEGIN ENCRYPTED PRIVATE KEY-----开头的私钥需要输入私钥密码。
- 签名端和验签端使用的摘要算法必须一致,例如都使用 SHA-256。
- 消息内容哪怕只变化一个字符、一个换行或一个空格,签名验证结果也会发生变化。
- 签名结果通常会以 Base64 形式展示和传递,便于复制、存储和对比。
常见问题
为什么我明明用的是同一组密钥,却验签失败?
最常见的原因是消息内容不完全一致,或者摘要算法、签名编码形式、私钥密码处理方式不同。调试时应逐项确认原文、算法和签名格式。
RSA 签名和 RSA 加密有什么区别?
RSA 加密更关注保密性,常见流程是公钥加密、私钥解密;RSA 签名更关注完整性和真实性,通常是私钥签名、公钥验证,两者目的不同。
带密码的私钥能直接签名吗?
可以,但前提是提供正确的私钥密码。否则工具无法解开该私钥,自然也无法继续完成签名。
相关工具
如果你还需要继续做 RSA 加解密,或先生成一组新的 RSA 密钥,可以使用: