在Ruby中,我可以创建一个16字节的二进制文件并将其转换为十六进制字符串:
key = SecureRandom.random_bytes(16) # => "hN\xDB\xAD\xAF\xB3R\xC0`\xB19\x1D\x19.\xD3I"
hex_key = key.each_byte.map { |byte| '%02x' % byte }.join # => "684edbadafb352c060b1391d192ed349"
在PHP和Javascript中,我可以将十六进制字符串转换回它的16字节二进制文件。
PHP:
<?php
hex2bin("684edbadafb352c060b1391d192ed349");
?>
Javascript via CryptoJS:
CryptoJS.enc.Hex.parse("684edbadafb352c060b1391d192ed349");
但是如何使用Ruby将十六进制字符串转换回16字节的二进制文件?
答案 0 :(得分:4)
这是你在找什么?
[str].pack('H*').bytes.to_a
或只是
[str].pack('H*')