2011-04-20 68 views
1

我有一串二进制数据,并希望选择一个字符,并^它由0xff。有没有简单的方法来做到这一点?例如:红宝石,二进制字符串XOR随机字节

x = "test\223\434t" 
r = rand(x.length) 
c = x[r].unpack("H*")^0xff # This doesnt work 
# Re concat the string 

回答

3
bytes = x.bytes.to_a 
# => [116, 101, 115, 116, 147, 28, 116] 
bytes[rand(bytes.length)]^0xff 
# => 139 
+0

有一种简单的方式来注入焦炭引入字符串? – wuntee 2011-04-20 19:52:08

+0

r = rand(bytes.length); bytes [r] = bytes [r]^0xff; s = bytes.pack(“a *”); – wuntee 2011-04-20 20:12:46