![]() |
xor verschlüsselung
problem: zahl ’2343’ (string) kann hier nicht richtig verschlüsselt und.(oder) entschlüsselt werden. wer hat hier eine idee?
function key(s : string; ixor : byte = 52) : string; var h : Integer; begin result := ''; for h := 1 to length(s) do result := result + chr(ord(s[h]) Xor ixor); end; ’2342’ <> key(key(’2342’)) // warum??? andere zahlen funktionieren richtig Jonson |
Moin Johnson,
also bei mir funktioniert es, erwartungsgemäss, auch mit '2343' korrekt. |
moin Christian,
string := '2343' allerdings wird zuerst der verschlüsselte string in memo1 kopiert (memo1.lines.add()) und für die entschlüsselung aus memo1 herausgeholt. mfg jonson |
Moin Jonson,
dann hab' ich eventuell auch die Ursache: Wenn Du mit 52 xor verknüpfst, wird jede '4' zu einer binären Null, und dies wird als Ende des Strings angesehen. Du müsstest Probleme mit jeder Zahl haben, die eine 4 enthält. '4' = chr(52) ! |
moin Christian,
ich kodiere alle möglichen zeichen (nicht nur zahlen). wie kann ich das problem bewältigen? mfg Jonson |
moin Jonson,
Zitat:
... + chr(ord(s[h]) Xor ixor); in einen Char, sondern lass es als Zahl: ... + right('00'+inttostr(ord(s[h]) Xor ixor),3); So machst Du zwar aus jedem Zeichen 3 Zeichen, aber so geht es. Beim zurückwandeln musst Du Dich dann immer drei Zeichen nehmen und die wieder in einen Char umrechnen. Warum 3 Zeichen? Bei ASCII können eigentlich nur Werte zwischen 0 und 256 heraus kommen, somit ist die Maximale Länge: 3. Bis dann Christian |
moin Christian,
du schreibst: Beim zurückwandeln musst Du Dich dann immer drei Zeichen nehmen und die wieder in einen Char umrechnen ich weiß aber nicht wie? kannst du mir schreiben wie das geht? danke Christian’s mfg Jonson |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz