安全 OpenSSL::PKey::PKey 的例子,求解惑

wangping · 2014年07月14日 · 最后由 wangping 回复于 2014年07月16日 · 3578 次阅读
data = 'Sign me!'
digest = OpenSSL::Digest::SHA256.new
pkey = OpenSSL::PKey::RSA.new(2048)
signature = pkey.sign(digest, data)
pub_key = pkey.public_key
puts pub_key.verify(digest, signature, data) # => true

如上是 ruby-doc 的 example,我只想知道 digest 的作用是什么?也就是摘要的作用?

我看它加密的时候是随机生成的话,那解密的话还得把这个拿过去解密

网上的说法: 对于长度小于 2^64 位的消息,SHA1 会产生一个 160 位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1 有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要

只是示例而已。 签名生成时使用私钥,验证时使用公钥。作用就像 MD5 一样

#1 楼 @windwiny 但必须有 digest 啊,不能没有

需要 登录 后方可回复, 如果你还没有账号请 注册新账号