encrypt not working in Leopard - temporary solution suggestion
Mark Smith
mark at maseurope.net
Fri Dec 14 22:31:48 EST 2007
Josh, this came up during the summer, and here is an RC4
implementation. It's 'symetrical' - (you use the same function in and
out). You'll need to base64encode the output if you're sending over
the internet, and base64Decode back again before decrypting.
put base64Encode(rc4(somePlainData, someSecretKey)) into
someEncryptedData
....
put rc4(base64Decode(someEncrypedData), someSecretKey) into
somePlainData
function rc4 pText, pKey
-- initialize
repeat with i = 0 to 255
put i into S1[i]
end repeat
put 0 into i
repeat with n = 0 to 255
add 1 to i
if i > length(pkey) then put 1 into i
put charToNum(char i of pKey) into S2[n]
end repeat
put 0 into j
repeat with i = 0 to 255
put (j + S1[i] + S2[i]) mod 256 into j
put S1[i] into temp
put S1[j] into S1[i]
put temp into S1[j]
end repeat
-- encrypt/decrypt
put 0 into i ; put 0 into j
repeat for each char c in pText
put charToNum(c) into tChar
put (i + 1) mod 256 into i
put (j + S1[i]) mod 256 into j
put S1[i] into temp
put S1[j] into S1[i]
put temp into S1[j]
put (S1[i] + S1[j]) mod 256 into t
put S1[t] into K
put numToChar(tChar bitXor K) after tOutput
end repeat
return tOutput
end rc4
Best,
Mark
On 15 Dec 2007, at 02:59, Josh Mellicker wrote:
>
>
> If anyone has something better, post it if ya got it!
>
>
>
>
More information about the use-livecode
mailing list