显然这曾经适用于 ruby 1.8.7,但不幸的是不适用于 1.9.2
class String
def xor(key)
text = dup
text.length.times {|n| text[n] ^= key[n.modulo key.size] }
text
end
end
def encode(_original, _pass = 'testvendor')
_original.xor(_pass)
end
puts encode('Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.')
#output=>
8
EE
DEBDREBDEVSR
TTTT
TNZV0D
SE E CRVSETENR D
TT
EKS0DSO VD
EVVTE S
RSREXE+E T
RR
T _TOEDE RO E
TTD
K
它返回
NoMethodError:“V”的未定义方法“^”:字符串
关于如何使它工作的任何想法?
非常感谢