Komponente für die Verschlüsselung

8

Ich brauche eine Verschlüsselungsbibliothek (VCL oder nicht), die mit Delphi XE2 & amp; Unicode-Strings ,
64 & amp; 32 bit kompiliert. Ich brauche es, um Daten in einer Datenbank zu speichern.

    
Panos Kal. 02.03.2012, 09:26
quelle

3 Antworten

9
PA. 02.03.2012, 09:59
quelle
5

Ich habe dies im Embarcadero-Forum gefunden, eine Version von DCPCrypt, die von aktualisiert wurde ein Benutzer .
Hier ist der Code , wenn jemand auf dasselbe Problem stößt.

Ich habe auch diese Bibliothek gefunden ( TurboPower LockBox ), die Delphi Xe2 unterstützt

    
Panos Kal. 02.03.2012 10:18
quelle
1

Alle Standard-Verschlüsselungsalgorithmen arbeiten mit Bytes oder Bits. Sie sollten in der Lage sein, jede Implementierung zu verwenden, die Delphi XE2 Win32 und Win64 unterstützt, zumindest solange Sie selbst für die Dekodierung und Kodierung Ihrer Unicode-Zeichenfolgen verantwortlich sind. Es gibt eine TEncoding-Klasse in der Unit RTL SysUtils, die Sie verwenden sollten, um Ihre Unicode-Strings von und nach TBytes zu konvertieren, wobei Sie die Codierung Ihrer Wahl verwenden.

Der Grund, warum viele Delphi-Implementierungen von Verschlüsselungsalgorithmen String-Parameter verwenden, ist hauptsächlich historisch und sollte nicht so verstanden werden, als ob die Implementierungen notwendigerweise wissen, was ein Zeichen oder eine Zeichenfolge ist. Viele Delphi-Versionen vor dem Hinzufügen des TBytes-Typs zur VCL / RTL gab es fünf Möglichkeiten, solche Methoden zu deklarieren, und die Verwendung von Strings war oft die bequemste.

  1. Untyped const und var Parameter. Dies ist, was die Move-Prozedur und TStream verwendet hat. Der Nachteil dabei ist, dass der häufigste Verwendungsfehler darin besteht, zu versuchen, eine typisierte Referenzvariable wie eine Zeichenfolge oder ein dynamisches Array zu übergeben, ohne sie zuerst zu dereferenzieren.
  2. Untypisierte Zeiger. Ähnliches Problem. Entwickler, die z.B. Ein Basic- oder Java-Hintergrund ist nicht unbedingt mit dem Konzept der Zeiger und Referenztypen vertraut.
  3. Öffnen Sie Array-Parameter. Auf sie kann nur per Element zugegriffen werden, daher mischen sie sich schlecht mit Verschlüsselungsalgorithmen, die für den Betrieb mit fortlaufenden Speicherblöcken implementiert sind.
  4. Ein bibliotheksspezifisches TBytes = Array des Byte-Typs. Die Delphi-Sprache ist stark typisiert, so dass dies nur funktionieren würde, wenn der Anwendungsentwickler anfangs denselben bibliothekspezifischen Typ verwendet, der schnell unbrauchbar wird, z. Wenn der Entwickler zuerst ein TnxBytes aus einer NexusDB-Datenbank abrufen muss, wandeln Sie es in ein StreamSec tBytes um, um es zu verschlüsseln, und dann in ein Indy TIdBytes um es über eine TIdTCPConnection zu übergeben.
  5. (Ansi) Zeichenfolgen. Seien wir ehrlich. Aus allen oben genannten Gründen (und einigen weiteren Gründen, wie z. B. Sprach- und RTL-Unterstützung) verwendeten die meisten Entwickler Strings als Speicherpuffer variabler Größe.
Henrick Hellström 02.03.2012 10:35
quelle