Thanks Mark, that is far superior.

On Dec 14, 2007, at 7:31 PM, Mark Smith wrote:

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!




_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to