Chr*_*sen 1 ruby encryption binary hex
在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"
Run Code Online (Sandbox Code Playgroud)
在PHP和Javascript中,我可以将十六进制字符串转换回它的16字节二进制文件。
PHP:
<?php
hex2bin("684edbadafb352c060b1391d192ed349");
?>
Run Code Online (Sandbox Code Playgroud)
通过CryptoJS的 Javascript :
CryptoJS.enc.Hex.parse("684edbadafb352c060b1391d192ed349");
Run Code Online (Sandbox Code Playgroud)
但是,如何使用Ruby将十六进制字符串转换回16字节二进制文件呢?
这是你想要的?
[str].pack('H*').bytes.to_a
Run Code Online (Sandbox Code Playgroud)
要不就
[str].pack('H*')
Run Code Online (Sandbox Code Playgroud)