数字签名是不是只能保证数据不被篡改?而不能保证数据不被得知?

假设A给B发一个包含账号和密码的文件(进行数字签名:Hash > 摘要 > 私钥加密),
A先给B一个公钥(给的过程中暴露,被别人知道了),
B收到文件用公钥解密,然后计算Hash比较,一样,文件没被修改。(这样可以保证不被篡改,当然如果公钥被替换,还是可以达到‘替换’数据的效果的,这就用到数字证书了。),

问题是如果这个文件也暴露了,而别人也有公钥,那岂不是别人可以知道账号和密码了?

还是说针对账号和密码这种情况需要用公钥传输,私钥解密那种方式?
上面的这种只能针对比如说转账金额这种保证不被篡改而不怕被得知这种情况?

阅读 4.9k
1 个回答

签名不是加密,加密的目的才是让数据不被人得知。签名的目的是保证数据不被篡改。被签名的文件通常是明文方式传输。

如果你想实现既不能篡改,也不被其他人得知,可以同时使用签名和加密,加密可以用数字信封之类的技术,对方用你的公钥加密一个高强度的对称加密算法的密钥给你,你用私钥解密这个密钥,然后再用这个密钥解密被签名文件,然后用对方公钥验证是否被篡改。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题