拉撒路的非对称加密

时间:2013-02-04 13:10:09

标签: freepascal lazarus

是否有支持非对称加密的lazarus(free pascal)库?

2 个答案:

答案 0 :(得分:1)

Lazarus / FPC带有openssh标头afaik。可能没有必要走外部计划路线。

答案 1 :(得分:0)

要在Lazarus中进行非对称加密,您需要集成openssl。

如果您使用Windows下载http://slproweb.com/download/Win32OpenSSL_Light-1_0_1e.exe

现在你可以在lazarus中使用openssl:

uses ..., Process;

...

procedure encrypt_file();
var hProcess : TProcess;
begin
  hProcess := TProcess.Create(nil);
  hProcess.Executable := 'openssl';
  hprocess.Parameters.Add('aes-256-cbc');
  hprocess.Parameters.Add('-a -salt');
  hprocess.Parameters.Add('-in secrets.txt'); //input file
  hprocess.Parameters.Add('-out secrets.txt.enc'); //output file  
  hProcess.Options := hProcess.Options + [poWaitOnExit, poUsePipes]; 
  hProcess.Execute;
end;

procedure decrypt_file();
var hProcess : TProcess;
begin
  hProcess := TProcess.Create(nil);
  hProcess.Executable := 'openssl';
  hprocess.Parameters.Add('aes-256-cbc');
  hprocess.Parameters.Add('-d -salt');
  hprocess.Parameters.Add('-in secrets.txt.enc'); //input file
  hprocess.Parameters.Add('-out secrets.txt.new'); //output file  
  hProcess.Options := hProcess.Options + [poWaitOnExit, poUsePipes]; 
  hProcess.Execute;
end;

注意:该示例是针对非对称读取的对称加密本文: http://www.devco.net/archives/2006/02/13/public_-_private_key_encryption_using_openssl.php