Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Text verschlüsseln ohne kömische Symbole ! (https://www.delphipraxis.net/113398-text-verschluesseln-ohne-koemische-symbole.html)

Delphiturbo 7. Mai 2008 11:33


Text verschlüsseln ohne kömische Symbole !
 
Hallo,

hier ist eine einfache Funktion. Sie verschlüsselt den Text aber ich erhalte
mansch mal keine deutsche Buchstaben
z.B. : 12345 bekomme ich 5J fQ !!!

Wo soll ich den Code ändern, damit ich immer normale Tastatur Symbole
damit jeder das Ergebnis eintippen kann :mrgreen:
Delphi-Quellcode:
function strEncrypt(const S: String; Key: Word): String;
var I: Integer;
const C1 = 52845; C2 = 22719;
begin
{$IFDEF Win32} 
 SetLength(Result,Length(S));
{$ELSE} 
 Result[0]:=Chr(Length(S));
{$ENDIF} 
 for I := 1 to Length(S) do begin
  Result[I] := Char(Ord(S[I]) xor (Key shr 8));
  Key := (Ord(Result[I]) + Key) * C1 + C2;
 end;
end;

generic 7. Mai 2008 12:00

Re: Text verschlüsseln ohne kömische Symbole !
 
die binäre Ausgabe von deine Code könntest du durch einen Base64 Encoder/Decoder jagen.

SirThornberry 7. Mai 2008 12:02

Re: Text verschlüsseln ohne kömische Symbole !
 
oder das ganze in hexdecimaler Darstellung ausgeben.

Klaus01 7. Mai 2008 12:05

Re: Text verschlüsseln ohne kömische Symbole !
 
Hallo,

für solche Sachen hat sich eigentlich die Hexdarstellung durchgesetzt.

Delphi-Quellcode:
function strEncrypt(const S: String; Key: Word): String;
  var
    I: Integer;
    dummyKey: Byte;
  const
    C1 = 52845; C2 = 22719;
begin
  result := '';
  for I := 1 to Length(S) do
    begin
      dummyKey :=Ord(S[I]) xor (Key shr 8)
      Result := result + IntToHex(dummyKey,2);
      Key := (dummyKey + Key) * C1 + C2;
   end;
end;
Grüße
Klaus

Delphiturbo 7. Mai 2008 12:18

Re: Text verschlüsseln ohne kömische Symbole !
 
Finde ich mit Hex
und was ist mit :
Delphi-Quellcode:
function strDecrypt(const S: String; Key: Word): String;
/// !

Klaus01 7. Mai 2008 12:20

Re: Text verschlüsseln ohne kömische Symbole !
 
Delphi-Quellcode:
DeinValue:= StrToInt('$'+<hexString>);
Grüße
Klaus

Delphiturbo 7. Mai 2008 12:35

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von Klaus01
Delphi-Quellcode:
DeinValue:= StrToInt('$'+<hexString>);

wo kommt das???

Klaus01 7. Mai 2008 12:36

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von Delphiturbo
Zitat:

Zitat von Klaus01
Delphi-Quellcode:
DeinValue:= StrToInt('$'+<hexString>);

wo kommt das???

im decrypt...

Grüße
Klaus

grenzgaenger 7. Mai 2008 12:49

Re: Text verschlüsseln ohne kömische Symbole !
 
oder du verwendest 'n algo, der keine ungültigen zeichen erzeugt. z.b. cäsar codierung.

<HTH>

btw: ist der XOR eine sehr schwache codierung.

Delphiturbo 11. Mai 2008 15:09

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von Klaus01
Delphi-Quellcode:
DeinValue:= StrToInt('$'+<hexString>);

Geht nicht !!!
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
    Edit2.Text:=strEncrypt(Edit1.text, 1258); // ok
    Edit3.Text:= // hier soll wieder entschlüsselt !
end;

grenzgaenger 11. Mai 2008 15:32

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von Delphiturbo
Geht nicht !!!

was geht denn nicht?

phXql 11. Mai 2008 15:33

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von grenzgaenger
btw: ist der XOR eine sehr schwache codierung.

Nö. Solange der Schlüssel genauso lang ist wie das Geheimnis ist und er nur einmal benutzt wird, ist es sogar sehr sicher.

Delphiturbo 14. Mai 2008 15:59

Re: Text verschlüsseln ohne kömische Symbole !
 
Ich gebe auf
mir dem Code konnte ich den Text nicht wieder entschlüsseln !
Delphi-Quellcode:
DeinValue:= StrToInt('$'+<hexString>);

Die Muhkuh 14. Mai 2008 16:04

Re: Text verschlüsseln ohne kömische Symbole !
 
Was funktioniert denn nicht?
Was kommt den raus?

Nuclear-Ping 14. Mai 2008 16:09

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von Die Muhkuh
Was funktioniert denn nicht?
Was kommt den raus?

Na was wohl: "[Fataler Fehler] ) erwartet aber < gefunden" oder sowas ... :roll:

Die Muhkuh 14. Mai 2008 16:13

Re: Text verschlüsseln ohne kömische Symbole !
 
Wahrscheinlich

rollstuhlfahrer 20. Mai 2008 14:12

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von Delphiturbo
Zitat:

Zitat von Klaus01
Delphi-Quellcode:
DeinValue:= StrToInt('$'+<hexString>);

wo kommt das???

sag mal, kannst du das denn nicht umsetzen??
<hexstring> solltest du vllt. mit deinem verschlüsselten ERgebniss ersetzen... :wall: :wall:
dann kommt auch kein [Fataler Fehler]... :angel:

Delphiturbo 20. Mai 2008 14:47

Re: Text verschlüsseln ohne kömische Symbole !
 
Das habe ich natürlich gemacht
Delphi-Quellcode:
Edit3.Text:=strDescrypt(Edit1.text, StrToInt('$'+ Edit2.Text)); // so auch ausprobiert
// Error : Inhalt von Text2 ist kein Integer!

Klaus01 20. Mai 2008 15:02

Re: Text verschlüsseln ohne kömische Symbole !
 
Beim verschlüsseln wurden aus einem Byte zwei Zeichen HexCode.
Beim entschlüsseln musst Du dann den verschlüsselten Text auch
immer häppchenweise (zwei Zeichen) übergeben.

Delphi-Quellcode:
Edit3.Text:=Edit3.text+chr(StrToInt('$'+ Edit2.Text[1]+Edit2.Text[2])));
Das ganze ließe sich dann auch in einer schleife machen.

Grüße
Klaus

[edit] chr noch eingefügt.

rollstuhlfahrer 20. Mai 2008 15:06

Re: Text verschlüsseln ohne kömische Symbole !
 
HI,

dann such doch mal nach einer Funktion (dürfte es bei Delphi geben), die Hex in Dec umwandelt, da ja ein Hex-String keine Zahl ist, sondern eine Hex-Zahl

rollstuhlfahrer

Klaus01 20. Mai 2008 15:10

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von rollstuhlfahrer
HI,

dann such doch mal nach einer Funktion (dürfte es bei Delphi geben), die Hex in Dec umwandelt, da ja ein Hex-String keine Zahl ist, sondern eine Hex-Zahl

rollstuhlfahrer

Wenn man aber ein $ Zeichen vor den HexString packt
kann man den HexTSring mit StrToInt in einen Zahlewert wandeln.

Grüße
Klaus

Delphiturbo 20. Mai 2008 18:15

Re: Text verschlüsseln ohne kömische Symbole !
 
Zitat:

Zitat von rollstuhlfahrer
HI,

dann such doch mal nach einer Funktion , die Hex in Dec umwandelt

d.h. du hast noch nicht getestet. Also das geht nicht nur was zwischen < >

Klaus01 20. Mai 2008 19:19

Re: Text verschlüsseln ohne kömische Symbole !
 
Wenn Du die letzten Beiträge gelesen und umgesetzt hättest,
wärest Du wahrscheinlich schon ein wenig weiter.

So könnte es dann aussehen.
Ich hoffe Du kopierst nicht nur, sondern versuchst es
zu verstehen.

Delphi-Quellcode:
// Das ist Dir bekannt und hast Du ja bereits verinnerlicht
function strEncrypt(const S: String; Key: Word): String;
  var
    I: Integer;
    dummyKey: Byte;
  const
    C1 = 52845; C2 = 22719;
begin
  result := '';
  for I := 1 to Length(S) do
    begin
      dummyKey :=Ord(S[I]) xor (Key shr 8);
      Result := result + IntToHex(dummyKey,2);
      Key := (dummyKey + Key) * C1 + C2;
   end;
end;


// Das ist neu.
function strDecrypt(const hex: String; key: Word):String;
var
  i : Integer;
  dummyKey : Byte;
const
  C1 = 52845; C2 = 22719;
begin
  result := '';
  for i := 1 to length(hex) div 2 do
    begin
      dummyKey:= StrToInt('$'+hex[(i*2)-1]+hex[i*2]);   // Umwandlung von 2 Hexzeichen in ihren Bytewert
      result := result + chr(dummyKey xor (key shr 8)); // das Ergebnis wird in ein Char umgewandelt
      key := (dummyKey + Key) * C1 +C2;                 // der key wird verändert
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit2.Text:=strEncrypt(Edit1.Text,StrToInt(Edit4.Text));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  edit3.Text:=strDecrypt(edit2.Text,StrToInt(Edit4.Text));
end;
Eigentlich recht simpel, oder?

Grüße
Klaus

Delphiturbo 20. Mai 2008 19:33

Re: Text verschlüsseln ohne kömische Symbole !
 
Es geht :thumb:
Danke sehr !
Versucht habe ich vorher schon aber nicht geschafft :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz