PDA

Volledige versie bekijken : bitwise string encryptie (opgelost)


B-Mantis
%Europe/Berlin %793 %2009, 19:02
EDIT::

sorry, ik zit echt al een half uur met dit 'probleem', ik post het, en ik vind de oplossing:

ipv:
if (index > string.length) return "";
moest het zijn:
if (index >= string.length) return "";

ik ben erachter gekomen door "bob".length en encrypt("bob").length te tracen.

/EDIT


Hey,

Ik heb een functie die een string char voor char encrypt:


private function encrypt(string:String):String {
return encryptString(string, 0);
function encryptString(string:String, index:uint):String {
if (index > string.length) return "";
return String.fromCharCode(string.charCodeAt(index) ^ ENCRYPTION_KEY) + encryptString(string, index+1);
}
}


ENCRYPTION_KEY is van het type uint en ziet eruit als 0xFFFF (16 bits)

nu een paar traces:


trace(encrypt(encrypt("bob")), "bob"); //bob bob
trace(encrypt(encrypt("bob")) == "bob"); //false


kan iemand me uitleggen waarom dit gebeurt? Ik dacht zelf dat een string een soort sluit-teken nodig heeft, zoals "\0", maar dit leek niet te helpen.. Ik heb ook al geprobeert "bob".substring() te vergelijken, maar werkt allemaal niet..