3

我大约一周前下载了 Lockbox3,但我无法使用它,我无法理解演示,因为它很复杂,我无法从中获取我想要的代码,我想使用 lockbox 3 AES- 256加密在Delphi中加密字符串。

4

2 回答 2

5

方法和属性名称几乎说明了一切。这是一种加密字符串然后再次解密的方法,假设您在设计时设置了编解码器属性,这些属性也是自描述的。

procedure TForm1.actEncryptStringExecute( Sender: TObject );
var
  Plaintext, sReconstructedPlaintext: string;
  base64Ciphertext: ansistring;
begin
sPlainText := 'I love LockBox 3!';
if not InputQuery( 'Plaintext', 'Enter plaintext that you want to encrypt (UTF-16LE encoding):', sPlainText) then exit;
codec.EncryptString( sPlaintext, base64Ciphertext);
ShowMessageFmt('The base64 encoding of the encoded ciphertext is'#13#10+'%s',[base64Ciphertext]);
codec.DecryptString( sReconstructedPlaintext, base64Ciphertext);
ShowMessageFmt('After decryption, this decrypts back to %s',[sReconstructedPlaintext])
end;

再看一下演示程序。加密按钮的处理程序加密文件而不是字符串。除此之外,如果你去掉装饰性的绒毛,比如将信息发布到备忘录,并在用户指定一个不存在的文件时处理异常,它非常简单 - 它基本上归结为一行......

codecMainDemo.EncryptFile( edtPlaintextFile.Text, edtCiphertextFile.Text );

要加密字符串,请调用 EncryptString()。要加密文件,您调用 EncryptFile()。

该演示显示了设置,即:

  1. 在表单上放置一个 TCryptographicLibrary 组件;
  2. 在表单上放置一个 TCodec 组件;
  3. 选择您喜欢的密码
  4. 选择您喜欢的链接模式;和
  5. 设置密码

鲍勃是你的叔叔!

如果您有任何问题,请告诉我。

于 2012-02-26T13:43:16.793 回答
-1

肖恩您的示例至少有一个错误,如果不是更多的话:

var
  Plaintext, sReconstructedPlaintext: string;
  base64Ciphertext: ansistring;
Plaintext should be sPLaintext.

另外,Delphi Sydney 编译器会标记错误“实际参数不足”codec.EncryptString( sPlaintext, base64Ciphertext);

我认为鲍勃叔叔正在休假。这是一个很棒的库,但不幸的是它被糟糕的文档所拖累。为了取得一些进展,我已经通过相关单元进行了探索,但很遗憾我必须这样做才能评估我是否要使用它——我正在为学校的市场编写教科书。

于 2021-02-22T16:24:02.633 回答