AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit DCPcrypt

Ein Thema von DLX · begonnen am 24. Mai 2018 · letzter Beitrag vom 18. Jun 2018
 
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: Probleme mit DCPcrypt

  Alt 28. Mai 2018, 12:21
Im Anhang ist das Projekt, nun für alles Edit-Felder vorhanden. Viel Spass damit.

Hier der Code:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,
  DCPcrypt2, DCPblockciphers, DCPrijndael, DCPbase64;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    eText: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    eKey: TEdit;
    eMKey: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function DecryptText( Data, Key, MasterKey: AnsiString ):String;
var Cipher : TDCP_rijndael;
    index, dataLength, bsize, pad: integer;
begin
  Data := DCPBase64.Base64DecodeStr(Data);
  Cipher := TDCP_rijndael.Create(NIL);
  try
    Cipher.Init(Key[1],128,@MasterKey[1]);
    Cipher.DecryptCBC(Data[1],Data[1],Length(Data));
    if form1.CheckBox1.Checked then
    begin
      pad := ord(Data[length(Data)]);
      SetLength(Data, length(Data)-pad);
    end;
  finally
    Cipher.Burn;
    Cipher.Free;
  end;
  if form1.CheckBox2.Checked then
   form1.Memo1.Lines.Add(Trim(Data))
   else form1.Memo1.Lines.Add(Data);
  if form1.CheckBox2.Checked then
   form1.eText.Text := Trim(Data)
   else form1.eText.Text := Data;
end;

function EncryptText( Data, Key, MasterKey: AnsiString ):String;
var Cipher : TDCP_rijndael;
    {Data,}DataDec{, Key, IV }: ansistring;
    index, dataLength, bsize, pad: integer;
begin
  Cipher := TDCP_rijndael.Create(nil);
  try
    Cipher.Init(Key[1],128,@MasterKey[1]);
    dataLength := Length(Data);
    bsize := (Cipher.BlockSize div 8);
    pad := bsize - (dataLength mod bsize);
    for index := 1 to pad do
      Data := Data+chr(pad);
    Cipher.EncryptCBC(Data[1],Data[1],Length(Data));
  finally
    Cipher.Burn;
    Cipher.Free;
  end;
  Data := DCPBase64.Base64EncodeStr(Data);
  form1.Memo1.Lines.Add(Data);
  form1.eText.Text := Data;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EncryptText(eText.Text, eKey.Text, eMKey.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  DecryptText(eText.Text, eKey.Text, eMKey.Text);
end;

end.
Und wie bereits erwähnt wurde, das ist momentan nur für Text geeignet. Vorschau.jpg
Angehängte Dateien
Dateityp: 7z DCPcrypt.7z (1,5 KB, 20x aufgerufen)
Gruß vom KodeZwerg
  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 05:26 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 by Thomas Breitkreuz