我想从其他应用程序中解密一些 DES3 加密消息。问题是,ruby 使用反斜杠表示法,如下所示:
\xE7B8\xCF\xFC\x9Fu\fkZ\xB3\u001As\x93\xFF
我收到类似的东西:
6613E58F24183FC60B2BB1A2EE9DA61A
我现在如何在 ruby 中使用加密,但是当我得到上述符号时,我不知道如何处理。我需要以某种方式转换它吗?任何帮助将不胜感激。
我想从其他应用程序中解密一些 DES3 加密消息。问题是,ruby 使用反斜杠表示法,如下所示:
\xE7B8\xCF\xFC\x9Fu\fkZ\xB3\u001As\x93\xFF
我收到类似的东西:
6613E58F24183FC60B2BB1A2EE9DA61A
我现在如何在 ruby 中使用加密,但是当我得到上述符号时,我不知道如何处理。我需要以某种方式转换它吗?任何帮助将不胜感激。
String#unpack
应该做的工作:
> str = "\xE7B8\xCF\xFC\x9Fu\fkΖ\xB3\u001As\x93\xFF" # Use double-quotes
=> "\xE7B8\xCF\xFC\x9Fu\fkΖ\xB3\u001As\x93\xFF"
> str.unpack('H*')
=> ["e74238cffc9f750c6bce96b31a7393ff"]
反向解决方法是:
> str = ["6613E58F24183FC60B2BB1A2EE9DA61A"]
> str.pack 'H*'
=> "f\x13\xE5\x8F$\x18?\xC6\v+\xB1\xA2\xEE\x9D\xA6\x1A"
第一个符号是原始二进制数据的字符串表示。第二个 - 是十六进制编码的数据,即每个字节表示为两个十六进制字符。