Delphi 用于加密的组件

Delphi 用于加密的组件,delphi,encryption,delphi-xe,delphi-xe2,Delphi,Encryption,Delphi Xe,Delphi Xe2,我需要一个加密库(VCL或非VCL),它将与Delphi XE2和unicode字符串一起工作,64和32位编译我需要它以便在数据库中存储数据 Delphi加密页面(DCPCrypt)是由David Barton编写的开放源码库(davebarton@bigfoot.com)它提供了一个非常全面的、免费导出的对称密钥加密组件的集合。我在Embarcadero论坛上找到了一个版本的DCPCrypt,该版本已由用户更新如果有人遇到同样的问题,这里有一个。 我还发现了支持Delphi Xe2的(Tur

我需要一个加密库(VCL或非VCL),它将与Delphi XE2unicode字符串一起工作,
6432位编译
我需要它以便在数据库中存储数据

Delphi加密页面(DCPCrypt)是由David Barton编写的开放源码库(davebarton@bigfoot.com)它提供了一个非常全面的、免费导出的对称密钥加密组件的集合。

我在Embarcadero论坛上找到了一个版本的DCPCrypt,该版本已由用户更新
如果有人遇到同样的问题,这里有一个


我还发现了支持Delphi Xe2的(TurboPower LockBox)所有标准加密算法都在字节或位上运行。您应该能够使用支持Delphi XE2 Win32和Win64的任何实现,至少您自己负责对unicode字符串进行解码和编码。RTL SysUtils单元中有一个TEncoding类,您应该使用它来使用自己选择的编码将unicode字符串转换为TBytes和TBytes

许多加密算法的Delphi实现采用字符串参数的原因主要是历史原因,不应该理解为实现必须知道字符或字符串是什么。在许多Delphi版本之前,在将TBytes类型添加到VCL/RTL之前,有五种方法可以声明此类方法,而使用字符串通常是最方便的方法

  • 非类型化的const和var参数。这就是Move程序和TStream所使用的。这样做的缺点是,最常见的使用错误是尝试传递引用类型的变量,例如字符串或动态数组,而不首先解除对它的引用
  • 非类型指针。类似的问题。来自Basic或Java背景的开发人员不一定熟悉指针和引用类型的概念
  • 打开数组参数。只能由元素访问,因此它们与实现为在连续内存块上运行的加密算法严重混合
  • 特定于库的TBytes=字节类型的数组。Delphi语言是强类型语言,因此只有当应用程序开发人员开始使用相同的库特定类型时,这才有效,这将很快变得不可行,例如,如果开发人员必须首先从NexusDB数据库中获取TnxBytes,将其转换为tBytes以对其进行加密,然后输入一个Indy TIdBytes,通过一个TIdTCPConnection传递它
  • (Ansi)字符串。让我们面对现实吧。出于上述所有原因(以及其他一些原因,如语言和RTL支持),大多数开发人员使用字符串作为可变大小的内存缓冲区

  • 非常感谢。我已经查过了。。。它不适用于DelphiXE2。我也需要64位编译!它是开源的,参与进来吧