2012-03-02 44 views
8

Tôi cần một thư viện mã hóa (VCL hay không) mà sẽ làm việc với Delphi XE2 & chuỗi unicode,
& 32 chút biên dịch.
Tôi cần nó để lưu trữ dữ liệu trong cơ sở dữ liệu.phần để mã hóa

Trả lời

9

Trang mã hóa Delphi (DCPCrypt) là một thư viện mã nguồn mở được viết bởi David Barton ([email protected]) http://www.cityinthesky.co.uk/opensource/dcpcrypt cung cấp một bộ sưu tập rất toàn diện, miễn phí để xuất, khóa đối xứng, các thành phần mã hóa.

+0

Cảm ơn bạn. Tôi đã kiểm tra này ... Nó không thích hợp cho DelphiXE2. Tôi cần nó cho 64bit biên dịch quá! –

+2

là nguồn mở, tham gia –

+0

:) Tôi đã tìm thấy người dùng đã thực hiện. –

5

Tôi đã tìm thấy this trong diễn đàn Embarcadero, phiên bản DCPCrypt đã được cập nhật bởi người dùng.
Đây là code nếu có ai đó gặp sự cố tương tự.

Tôi cũng thấy điều này library (TurboPower Hộp khóa) hỗ trợ Delphi Xe2

1

Tất cả các thuật toán mã hóa tiêu chuẩn hoạt động trên byte hoặc bit. Bạn sẽ có thể sử dụng bất kỳ thực hiện có hỗ trợ Delphi XE2 Win32 và Win64, ít nhất là miễn là bạn tự chịu trách nhiệm giải mã và mã hóa chuỗi unicode của bạn. Có một lớp TEncoding trong RTL SysUtils đơn vị mà bạn nên sử dụng để chuyển đổi chuỗi unicode của bạn đến và đi từ TBytes, bằng cách sử dụng mã hóa của sự lựa chọn của riêng bạn.

Lý do nhiều triển khai Delphi của thuật toán mã hóa lấy tham số chuỗi, chủ yếu là lịch sử và không được hiểu là triển khai nhất thiết phải biết ký tự hoặc chuỗi là gì. Nhiều phiên bản Delphi trước đây, trước khi kiểu TBytes được thêm vào VCL/RTL, có năm cách để khai báo các phương thức đó, và việc sử dụng các chuỗi thường là một cách thuận tiện nhất.

  1. Thông số const và var không được nhập. Đây là quy trình Move và TStream đã sử dụng. Nhược điểm với điều này là lỗi sử dụng phổ biến nhất là cố gắng vượt qua một biến tham chiếu đã nhập, chẳng hạn như một chuỗi hoặc mảng động, mà không có dereferencing nó đầu tiên.
  2. Con trỏ không được nhập. Vấn đề tương tự. Nhà phát triển đến từ ví dụ: Nền tảng cơ bản hoặc Java không nhất thiết phải quen thuộc với khái niệm về con trỏ và kiểu tham chiếu.
  3. Mở tham số mảng. Chỉ có thể truy cập bằng phần tử, do đó chúng kết hợp với các thuật toán mã hóa được triển khai để hoạt động trên các khối bộ nhớ liên tục.
  4. Một thư viện TBytes cụ thể = mảng thuộc loại byte. Ngôn ngữ Delphi được đánh máy mạnh mẽ, do đó, điều này sẽ chỉ hoạt động nếu nhà phát triển ứng dụng sử dụng cùng một loại thư viện cụ thể để bắt đầu, điều này sẽ nhanh chóng phát triển không khả thi, ví dụ: nếu nhà phát triển trước tiên phải lấy một TnxBytes từ một cơ sở dữ liệu NexusDB, hãy chuyển đổi nó thành một tBytes StreamSec để mã hóa nó, và sau đó vào một TIÊU CHUẨN ĐỘC ĐÁO để truyền nó qua một TIdTCPConnection.
  5. (Ansi) strings. Hãy đối mặt với nó. Đối với tất cả các lý do trên (và một số lý do khác, chẳng hạn như hỗ trợ ngôn ngữ và RTL), hầu hết các nhà phát triển đã sử dụng các chuỗi làm bộ đệm có kích thước thay đổi.
+0

Cảm ơn bạn Henrick, bạn đã thực hiện một số điểm rất tốt. –

Các vấn đề liên quan