[Delphi] Problem z Xorowaniem !!!!

0

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ć??

0

Nie wiem gdzie jest błąd, ale wiem, ze juz po zakodowaniu jest tylko jedno 'i' - ale nie ma pomysłu o co może chodzić - procka wygląda poprawnie.

0

hmmm stfiercam ze co druga litera zostaje zamieniona na inny znak ;) przy chaśle i

PS. Jakoś tak ale przy iii wyszło i przy chaśle
PS2. Metoda xorowania na chasło jest troche głupia bo przy szyfrowaniu szyfrowanego tekstu wychodzi tekst wejściowy ;p

0

A czemu PassCount := 0; zdaje się, że stringi są indeksowane od 1;

0

Ja tej metody użyłem w programie do kodowania plików i działa normalnie nie ma błedów.http://www.4programmers.net/forum/viewtopic.php?id=30140
tu jest post. Poczytaj
http://www.4programmers.net/forum/viewtopic.php?id=30189
A tu masz inne metody Dryobates napisał jak byś poszukał to bys nie pytał. te tematy było 2-3 dni temu poruszane

1 użytkowników online, w tym zalogowanych: 0, gości: 1