在ruby中对2个字符串执行按位异或

1 ruby bit-manipulation xor

我试图在ruby中的两个关键字符串上执行Bitwise XOR:

key1:0123456789abcdeffedcba9876543210
key2:00000000000000000000000000000000

有人可以告诉我怎么做,谢谢.

dbe*_*hur 8

解压缩成字节,压缩,映射xor,重新打包.

s1='0123456789abcdeffedcba9876543210'
s2='00000000000000000000000000000000'
xored = s1.unpack('C*').zip(s2.unpack('C*')).map{ |a,b| a ^ b }.pack('C*')
# => "\x00\x01\x02\x03\x04\x05\x06\a\b\tQRSTUVVUTSRQ\t\b\a\x06\x05\x04\x03\x02\x01\x00"
Run Code Online (Sandbox Code Playgroud)

  • 这不是你想要的字符的按位xor.你想要的并不完全清楚...得到你想要的字符串你可以做`s1.upcase`,但当然这根本不涉及`s2`.你是否可以改变这个问题来得到一个非平凡的`s2`,这样你就可以更清楚地找到什么函数了. (3认同)