【问题标题】:Ruby SHA2 digest incorrect doc or issue in my IRB?Ruby SHA2 在我的 IRB 中消化了不正确的文档或问题?
【发布时间】:2015-01-20 22:34:57
【问题描述】:

文档@http://www.ruby-doc.org/stdlib-1.9.3/libdoc/digest/rdoc/Digest/SHA2.html 显示:

Digest::SHA256.new.digest_length * 8
 #=> 512
Digest::SHA384.new.digest_length * 8
 #=> 1024
Digest::SHA512.new.digest_length * 8
 #=> 1024

这是我在2.1.3 中的输出:

Digest::SHA256.new.digest_length * 8
 #=> 256 
Digest::SHA384.new.digest_length * 8
 #=> 384 
Digest::SHA512.new.digest_length * 8
 #=> 512

为什么我的块长度输出与 Ruby 文档不同?

【问题讨论】:

    标签: ruby sha


    【解决方案1】:

    文档好像有错别字,看,

    block_length → Integer
    Returns the block length of the digest in bytes.
    
    Digest::SHA256.new.digest_length * 8
    # => 512
    Digest::SHA384.new.digest_length * 8
    # => 1024
    Digest::SHA512.new.digest_length * 8
    # => 1024
    
    digest_length → Integer
    Returns the length of the hash value of the digest in bytes.
    
    Digest::SHA256.new.digest_length * 8
    # => 256
    Digest::SHA384.new.digest_length * 8
    # => 384
    Digest::SHA512.new.digest_length * 8
    # => 512
    

    在示例中两者都使用digest_length

    但它应该是,

    block_length → Integer
    Returns the block length of the digest in bytes.
    
    Digest::SHA256.new.block_length * 8
    # => 512
    Digest::SHA384.new.block_length * 8
    # => 1024
    Digest::SHA512.new.block_length * 8
    # => 1024
    
    digest_length → Integer
    Returns the length of the hash value of the digest in bytes.
    
    Digest::SHA256.new.digest_length * 8
    # => 256
    Digest::SHA384.new.digest_length * 8
    # => 384
    Digest::SHA512.new.digest_length * 8
    # => 512
    

    【讨论】:

      【解决方案2】:

      This has been fixed in the 2.0.0 documentation (commit)

      Ruby 1.9.3 文档中的 Digest::SHA2#block_length 方法似乎有误,因为他们在示例中使用的是 digest_length 方法而不是 block_length

      使用digest_block实际上得到了显示的值51210241024

      Digest::SHA256.new.block_length * 8
      # => 512
      
      Digest::SHA384.new.block_length * 8
      # => 1024
      
      Digest::SHA512.new.block_length * 8
      # => 1024
      

      【讨论】:

        猜你喜欢
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多