AGB  ·  Datenschutz  ·  Impressum  







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

Shop-Zugangsdaten verschlüsseln

Ein Thema von freimatz · begonnen am 25. Aug 2018 · letzter Beitrag vom 10. Sep 2018
 
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#19

AW: Shop-Zugangsdaten verschlüsseln

  Alt 8. Sep 2018, 08:23
Also bei mir klappt das wunderbar.

Man könnte das ganze noch zur vereinfachten Verwendung noch um ein paar Methoden erweitern, damit es jeder direkt verwenden kann.

Delphi-Quellcode:
uses
   System.SysUtils, System.NetEncoding;

type
  function ProtectData(data: string): TBytes;
  function UnprotectData(data: TBytes): string;
  function ProtectString(data: string): string;
  function UnprotectString(data: string): string;

implementation

function ProtectData(data: string): TBytes;
var
  inBuffer: TBytes;
begin
  inBuffer:=TEncoding.UTF8.GetBytes(data);
  Result:=TProtectedData.Protect(inBuffer);
end;

function UnprotectData(data: TBytes): string;
var
  outBuffer: TBytes;
begin
  outBuffer:=TProtectedData.Unprotect(data);
  Result:=TEncoding.UTF8.GetString(outBuffer)
end;

function ProtectString(data: string): string;
var
  ne: TNetEncoding;
  Buffer: TBytes;
begin
  ne:=TNetEncoding.Create;
  try
    Buffer:=ProtectData(data);
    Result:=ne.Base64.EncodeBytesToString(Buffer);
  finally
    ne.Free;
  end;
end;

function UnprotectString(data: string): string;
var
  ne: TNetEncoding;
  Buffer: TBytes;
begin
  ne:=TNetEncoding.Create;
  try
    Buffer:=ne.Base64.DecodeStringToBytes(data);
    Result:=UnprotectData(Buffer);
  finally
    ne.Free;
  end;
end;

end.
Und um diese Daten auch in INI-Datei zu speichern:

Delphi-Quellcode:
procedure WriteMultiLineStringToIni(ini: TIniFile; Section: string; Ident: string; Value: string);
var
  i: Integer;
  sl: TStringList;
begin
  sl:=TStringList.Create;
  try
    sl.Text:=Value;
    for i:=sl.Count-1 downto 0 do
      if sl[i]='then sl.Delete(i);
    ini.WriteInteger(Section, Ident+'Count', sl.Count);
    for i:=0 to sl.Count-1 do
      ini.WriteString(Section, Ident+inttostr(i), sl[i]);
  finally
    sl.Free;
  end;
end;

function ReadMultilineStringFromIni(ini: TIniFile; Section: string; Ident: string): string;
var
  i, count: Integer;
  sl: TStringList;
begin
  sl:=TStringList.Create;
  try
    Result:='';
    if ini.SectionExists(Section) then
    begin
      if ini.ValueExists(Section, Ident+'Count') then
      begin
        count:=ini.ReadInteger(Section, Ident+'Count', 0);
        for i:=0 to Count-1 do
          sl.Add(ini.ReadString(Section, Ident+inttostr(i), ''));
        for i:=sl.Count-1 downto 0 do
          if sl[i]='then sl.Delete(i);
        Result:=sl.Text;
      end;
    end;
  finally
    sl.Free;
  end;
end;
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  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 06:00 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