I wish to recode the following php code to ruby:
function text_decrypt_symbol($s, $i) {
$s is a text-encoded string, $i is index of 2-char code. function
returns number in range 0-255
return (ord(substr($s, $i, 1)) - 100)*16 + ord(substr($s, $i
+1, 1)) - 100;
}
function text_decrypt($s) {
if ($s == "")
return $s;
$enc = 85 ^ text_decrypt_symbol($s, 0);
for ($i = 2; $i < strlen($s); $i+=2) { # $i=2 to skip salt
$result .= chr(text_decrypt_symbol($s, $i) ^ $enc++);
if ($enc > 255)
$enc = 0;
}
return $result;
}
As I have stated I am a ruby newbie but thus far I have produced this:
def text_decrypt(value)
enc = 85 ^ text_decrypt_symbol(value, 0);
i = 2
while i < value.length
curchar = text_decrypt_symbol(value, i) ^ enc++
result += curchar.chr
if enc > 255
enc = 0
end
i+=2
end
return result;
end
def text_decrypt_symbol(value, value2)
char1 = value[value2, 1]
char2 = value[value2+1, 1]
return (char1.chr - 100)*16 + char2.chr - 100;
end
Apparently the .chr method requires an integer to work. Anyone have
any advice?