【问题标题】:How to truncate a SHA256 key to emulate a 128 key in Ruby如何截断 SHA256 密钥以在 Ruby 中模拟 128 密钥
【发布时间】:2015-09-08 17:32:52
【问题描述】:

我想截断 256 键来模拟 128 键。这在 Python 中使用[:16] 很容易

>>> hashed_master_key = hashlib.sha256(master_key).digest()
>>> len(hashed_master_key)
32
>>> hashed_master_key = hashlib.sha256(master_key).digest()[:16]
>>> len(hashed_master_key)
16

我们如何使用 Ruby 做同样的事情?

2.2.1 :028 > hashed_master_key = Digest::SHA256.digest master_key
 =>     "\x94DS\xF2:;\x8FU\x9C:v\xB6\xD4\x1C\xB4\xD0\x88/D\xA3\xF0\x91\xBC\x19\x14\x98\xE9\nS^.4" 
2.2.1 :029 > hashed_master_key.length
 => 32 

【问题讨论】:

    标签: python ruby sha256 hashlib


    【解决方案1】:

    散列在这里不相关。两个库都将摘要输出为一个简单的字符串。所以在 Python 中 [:16] 只需要前 16 个字符

    Ruby 等价物同样简单:

    hashed_master_key = Digest::SHA256.digest( master_key )[0,16]
    

    更多 Ruby String 方法记录在 http://ruby-doc.org/core-2.2.3/String.html


    注意,在 Ruby 中,您通常可以省略方法参数括号 ( ),这是一种流行的 Ruby 编写方式,您将在文档和示例中看到。但是,这可能会妨碍此处使用的方法链接。如果您看到没有括号的 Ruby 示例方法调用,并且您想在一行代码中添加更多内容,您可以随意添加括号以允许它。

    【讨论】:

      猜你喜欢
      • 2012-08-25
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2016-08-12
      • 2017-03-17
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      相关资源
      最近更新 更多