Problem mit IndyBase64 verschl./entschl. auf anderen PC



  • Hi,

    ich habe ein Programm, welches eine zufällige Zahl in die Registry schreibt, diese wieder ausliest und mit einer anderen vergleicht. Also ein simpeler Kopierschutz (Klappt immer und auf allen Rechnern). Nun verschlüssele ich diese Zahl zusätzlich mit der IndyBase64 Verschlüsselung bzw. entschlüssele Sie für den Vergleich wieder.

    AnsiString strInput, strOutput, strResult;
    strInput=IntToStr(Zahl);
    IdBase64Encoder1->SetBufferSize(strInput.Length()+2);
    IdBase64Encoder1->AddCRLF=false;
    IdBase64Encoder1->UseEvent=false;
    IdBase64Encoder1->Reset();
    IdBase64Encoder1->CodeString(strInput);
    strResult = IdBase64Encoder1->CompletedInput();
    strOutput = strResult.SubString(3, strResult.Length());
    Edit2->Text=strOutput;
    

    (Und halt ähnlich für die Entschlüsselung)

    Das alles klappt immer(!) wunderbar auf meinen beiden Rechnern und auf vielen Rechnern von anderen Leuten. Doch manchmal klappt es nicht, obwohl scheinbar richtig ver- und entschlüsselt wird.
    Der Benutzer schickt mir die verschlüsselte Zahl, ich entschlüssele sie, verfälsche diese und verschlüssele sie wieder und geb sie dem Benutzer als Passwort. Doch beim Benutzer scheint dieses Passwort nicht zu funktionieren, warum auch immer...
    Auch wenn ich die entschlüsselte Zahl in meine Registry schreibe, sie verschlüssele und als Passwort benutze, klappt es bei mir wunderbar.

    Für mich sieht es irgendwie nach einem Anwenderfehler aus. Außerdem wird der ganze Schlüssel-Passwort-Austausch per eMail durchgeführt, können dabei irgendwelche Zeichen verfälscht werden? (Ich hab extra Base64 genommen, weil dort keine Sonderzeichen generiert werden) Mich irretiert es aber, dass es schon zu oft vorgekommen ist und ich deswegen einen Andwenderfehler beinahe ausschließen will.

    Ich bräuchte Euren Rat.

    Danke und Gruß
    ravel



  • Da wirst du wohl eine Log-Funktion einbauen müssen, die auch die Passwortverifikation überwacht. Bei Problemen lässt du dir dann vom User die Logdatei zuschicken.


Log in to reply