2012-03-02 12 views
8

Potrzebuję biblioteki szyfrowania (VCL lub nie), które będą pracować z Delphi XE2 & unicode ciągi,
& 32 bit kompiluje.
Potrzebuję go do przechowywania danych w bazie danych.Komponent do szyfrowania

Odpowiedz

9

Strona kryptografii Delphi (DCPCrypt) jest biblioteką typu open source napisaną przez Davida Bartona ([email protected]) http://www.cityinthesky.co.uk/opensource/dcpcrypt, która zapewnia zbiór bardzo obszernych, bezpłatnych kluczy eksportowych, symetrycznych, elementów kryptograficznych.

+0

Dziękuję. Już to sprawdziłem ... Nie jest odpowiedni dla DelphiXE2. Potrzebuję go także do 64-bitowych kompilacji! –

+2

jest open source, angażuj się –

+0

:) Znalazłem użytkownika, który już zrobił. –

5

Znalazłem this na forum Embarcadero, wersję DCPCrypt, która została zaktualizowana przez użytkownika.
Oto code, jeśli ktokolwiek natknie się na ten sam problem.

Znalazłam też to library (TurboPower lockbox), który obsługuje Delphi XE2

1

Wszystkie standardowe algorytmy szyfrowania działają na bajtów lub bitów. Powinieneś być w stanie użyć dowolnej implementacji obsługującej Delphi XE2 Win32 i Win64, przynajmniej tak długo, jak sam bierzesz odpowiedzialność za dekodowanie i kodowanie ciągów unicode. Istnieje klasa TEncoding w jednostce SysUtils RTL, której powinieneś użyć do konwersji łańcuchów unicode do iz TBytes, używając kodowania własnego wyboru.

Powodem, dla którego wiele implementacji algorytmów szyfrowania Delphi przyjmuje parametry łańcuchowe, jest głównie historyczny i nie należy ich rozumieć tak, jakby implementacje koniecznie znały znak lub ciąg znaków. Wiele wersji Delphi wcześniej, zanim typ TBytes został dodany do VCL/RTL, było pięć sposobów deklarowania takich metod, a używanie łańcuchów często było najwygodniejsze.

  1. Nieokreślone parametry const i var. To właśnie zastosowała procedura Move i TStream. Wadą tego jest to, że najczęstszym błędem użycia jest próba przekazania referencyjnej zmiennej pisanej na maszynie, takiej jak ciąg lub dynamiczna tablica, bez wcześniejszego dereferencji.
  2. Niestandardowe wskaźniki. Podobny problem. Programiści pochodzący z np. Podstawy lub Java nie są zaznajomione z pojęciem wskaźników i typów referencyjnych.
  3. Otwórz parametry tablicy. Dostęp do nich można uzyskać tylko za pomocą elementu, więc źle się mieszają z algorytmami szyfrowania, które są wdrażane w celu obsługi ciągłych bloków pamięci.
  4. Specyficzna biblioteka TBytes = tablica typu Byte. Język Delphi jest silnie typowany, więc działałoby to tylko wtedy, gdyby twórca aplikacji używał na początku tego samego typu biblioteki, co szybko stałoby się niewykonalne, np. jeśli programista musiał najpierw pobrać TnxBytes z bazy danych NexusDB, przekonwertować go na StreamSec tBytes, aby go zaszyfrować, a następnie na Indy TIdBytes, aby przekazać go przez TIdTCPConnection.
  5. (Ansi) ciągi. Spojrzmy prawdzie w oczy. Ze wszystkich powyższych powodów (i niektórych innych, takich jak obsługa języka i RTL), większość programistów używała ciągów jako buforów pamięci o zmiennej wielkości.
+0

Dziękuję Henrick, zrobiłeś kilka bardzo dobrych punktów. –