如何使用delphi在密码箱3中使用AES-256加密

时间:2012-02-26 01:03:40

标签: delphi encryption turbopower lockbox-3

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

2 个答案:

答案 0 :(得分: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. 设置密码
  6. 鲍勃是你的叔叔!

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

答案 1 :(得分:-1)

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

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

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

我认为鲍勃叔叔正在休息一天。 这是一个很棒的库,但不幸的是它被糟糕的文档所失望。为了取得一些进展,我已经通过相关单位深耕,但很遗憾我不得不这样做以评估我是否想使用它 - 我正在为学校市场写一本教科书。