2010-10-04 85 views

回答

2

如果需要輸出爲長度爲32,你只需要調用摘要:: SHA2.new有256位長(這是默認):

irb> require 'digest/sha2' 
=> true 
irb> h = Digest::SHA2.new(256) << "hashme" 
=> #<Digest::SHA2:256 02208b9403a87df9f4ed6b2ee2657efaa589026b4cce9accc8e8a5bf3d693c86> 
irb> puts h.length 
32 
=> nil 
irb> puts h 
02208b9403a87df9f4ed6b2ee2657efaa589026b4cce9accc8e8a5bf3d693c86 
=> nil 

或者只是:

irb> h = Digest::SHA2.new << "hashme" 
=> #<Digest::SHA2:256 02208b9403a87df9f4ed6b2ee2657efaa589026b4cce9accc8e8a5bf3d693c86> 
irb> puts h.length 
32 
=> nil 
irb> puts h 
02208b9403a87df9f4ed6b2ee2657efaa589026b4cce9accc8e8a5bf3d693c86 
=> nil 

希望這有助於!

+0

非常感謝你,但這並不能解決我的問題。 PHP在hash()中有第三個參數,它觸發「原始二進制」輸出。我想將h轉換爲完全相同的「原始二進制」輸出。看到http://de2.php.net/manual/en/function.hash.php – 2010-10-07 14:34:07

+0

好吧,我解決了它只是打電話給h.digest :)非常感謝你! – 2010-10-07 16:18:22

相關問題