Otóż wziełem przykład xorowania z artykuły A.B (program szyfrator). Myślałem, że działa on porządnie, dlatego zaczełem robić testy, czy aby na pewno funkcja xorowania tam zawarta działa zawsze prawidłowo. No to tekst wyglądał nastąpująco 'iii' (czyli trzy razy litery i). Jak hasło xorowania wziełem litere 'i'. Zakodowało, a jak chciałem odkodować poprzez hasło "i" - wyszło juz tylko jedno "i". Jak widać, funkcja ta ma błąd. Czy ktoś może mi powiedzieć jak napsiać prawidłową / gdzie ją mozna znaleźć???
A oto funkcja Xorowania z progsu A.Boducha:
function Szyfruj(sString, Password : String) : String;
var
I : Integer;
PassCount : Integer;
begin
PassCount := 0;
Result := sString; // przypisz wartosc poczatkowa
for I := 1 to Length(sString) do // wykonuj dla kazdej litery osobno
begin
{
Dla kazdego osobnego znaku zamieniaj na wartosc liczbowa, a nastepnie
xoruj z kazda litera hasla - powstaje wowczas unikalna kombinacja.
}
Result[i] := Chr(Ord(sString[i]) xor Ord(Password[PassCount]));
Inc(PassCount); // wieksz licznik - kolejne slowo hasla
if PassCount > Length(Password) then PassCount := 0; // Jezeli licznik przekroczy dlugosc hasla - wyzeruj
end;
end;
Czy ktoś wie jak ten problem rozwiązać??