如何截断SHA256键以模拟Ruby中的128键

时间:2015-09-08 09:18:51

标签: python ruby sha256 hashlib

我想截断256键来模拟128键。使用[:16]

在Python中这很容易
>>> 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 

1 个答案:

答案 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

记录了更多Ruby String方法

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