代码之家  ›  专栏  ›  技术社区  ›  Brandon Yarbrough

在Ruby中将0-F的字符串转换为字节数组

  •  17
  • Brandon Yarbrough  · 技术社区  · 14 年前

    我试图解密一个加密的另一个程序,它使用的是ByjCaseCARCH库,用于Java。

    在爪哇,我可以像这样设置钥匙: key = Hex.decode("5F3B603AFCE22359");

    我正试图找出如何在Ruby中表示相同的步骤。

    2 回复  |  直到 9 年前
        1
  •  36
  •   Nakilon earlonrails    9 年前

    只需得到整数 str.hex . 您可以通过多种方式获得字节数组:

    str.scan(/../).map(&:hex)
    [str].pack('H*').unpack('C*')
    [str].pack('H*').bytes.to_a
    

    查看其他选项 pack/unpack 在这里: http://ruby-doc.org/core/classes/String.html#method-i-unpack

    以及这里的例子: http://www.codeweblog.com/ruby-string-pack-unpack-detailed-usage/

        2
  •  3
  •   ReWrite    9 年前

    对于字符串 str :

    "".tap {|binary| str.scan(/../) {|hn| binary << hn.to_i(16).chr}}