AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Text verschlüsseln Windows + Android

Ein Thema von gee21 · begonnen am 13. Jan 2020 · letzter Beitrag vom 15. Jan 2020
 
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

Text verschlüsseln Windows + Android

  Alt 13. Jan 2020, 18:27
Guten Abend

ich habe mal vor längerem eine code im internet gefunden der text verschlüsselt und entschlüsselt. (Ist nicht von mir)
auf windows10 funktioniert der nach wie vor. aber in android (firemonkey) krieg ich das nicht zum laufen.

ich schaffe es zwar den text auf android korrekt zu verschlüsseln. habe bei gleichem text / gleichem schlüssel die gleichen chifre wie auch dem pc.
aber beim entschlüsseln funktioniert es mit android nicht. der ausgabetext ist einfach leer.

Weiss jemand was man machen muss damit dieser code auf beiden Plattformen funktioniert? (Windows / Android)
oder hat jemand einen einfacheren / besseren code als dieser?


Damit RawByteString in android funktioniert habe ich dieses packet installert. (evt liegt auch hier das problem?)
https://github.com/delphilite/System.ByteStrings

Delphi-Quellcode:
const CKEY1 = 53761;
CKEY2 = 32618;

function EncryptStr(const S :String; Key: Word): String;
var i :Integer;
      RStr :RawByteString;
      RStrB :TBytes Absolute RStr;
begin
  Result:= '';
  RStr:= UTF8Encode(S);
  for i := 0 to Length(RStr)-1 do begin
    RStrB[i] := RStrB[i] xor (Key shr 8);
    Key := (RStrB[i] + Key) * CKEY1 + CKEY2;
  end;
  for i := 0 to Length(RStr)-1 do begin
    Result:= Result + IntToHex(RStrB[i], 2);
  end;
end;

function DecryptStr(const S: String; Key: Word): String;
var i, tmpKey :Integer;
      RStr :RawByteString;
      RStrB :TBytes Absolute RStr;
      tmpStr :string;
begin
  tmpStr:= UpperCase(S);
  SetLength(RStr, Length(tmpStr) div 2);
  i:= 1;
  try
    while (i < Length(tmpStr)) do begin
      RStrB[i div 2]:= StrToInt('$' + tmpStr[i] + tmpStr[i+1]);
      Inc(i, 2);
    end;
  except
    Result:= '';
    Exit;
  end;
  for i := 0 to Length(RStr)-1 do begin
    tmpKey:= RStrB[i];
    RStrB[i] := RStrB[i] xor (Key shr 8);
    Key := (tmpKey + Key) * CKEY1 + CKEY2;
  end;
  Result:= UTF8Decode(RStr);
end;
ich öffne / speichere es dann so:
die showmessages() habe ich nur zum testen da drin.

Delphi-Quellcode:
procedure jetztverschlüsselnundseichern;
var
i: integer;
begin
 pwdb.Clear;

 for I := 0 to pwdb2.Count-1 do pwdb.Add( EncryptStr(pwdb2.Strings[i], 223));

 pwdb.SaveToFile(GetHomePath + '/pwdb.txt');
 showmessage('gespeichert und verschlüsselt');
 end;
Delphi-Quellcode:
  
  pwdb.loadfromfile(GetHomePath + '/pwdb.txt');
  pwdb2.Clear;
    for I := 0 to pwdb.Count-1 do begin
     s:= DecryptStr(pwdb.Strings[i], 223);
     showmessage('before:'+pwdb.Strings[i]+' After:'+s);
     pwdb2.Add(s);
    end;
    showmessage('result nach entschlüsseln: '+ pwdb2.Text);
Robert

Geändert von gee21 (13. Jan 2020 um 18:47 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 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