我想截断256键来模拟128键。使用[: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
答案 0 :(得分:3)
散列与此无关。两个库都将摘要输出为简单字符串。所以在Python [:16]
中只需要前16个字符
Ruby等价物就是这么简单:
hashed_master_key = Digest::SHA256.digest( master_key )[0,16]
http://ruby-doc.org/core-2.2.3/String.html
记录了更多RubyString
方法
在Ruby中,你经常可以省略方法参数括号( )
,这是一种流行的Ruby编写方式,你将在文档和示例中看到。但是,这可能会妨碍此处使用的方法链接。如果您看到没有括号的Ruby示例方法调用,并且您想要在一行代码中添加更多内容,则可以随意添加括号以允许它。