我大约一周前下载了Lockbox3,我无法使用它,我无法理解该演示,因为它很复杂,我无法从中获取我想要的代码,我想使用密码箱3 AES-256加密,用于加密Delphi中的字符串。
答案 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 :(得分:-1)
肖恩 您的示例至少有一个错误,如果不是更多:
var
Plaintext, sReconstructedPlaintext: string;
base64Ciphertext: ansistring;
Plaintext should be sPLaintext.
加上 Delphi Sydney 编译器在 codec.EncryptString( sPlaintext, base64Ciphertext);
上标记错误“实际参数不足”
我认为鲍勃叔叔正在休息一天。 这是一个很棒的库,但不幸的是它被糟糕的文档所失望。为了取得一些进展,我已经通过相关单位深耕,但很遗憾我不得不这样做以评估我是否想使用它 - 我正在为学校市场写一本教科书。