2013-02-04 59 views
1

是否有任何支持非对称加密的lazarus(免费pascal)库?lazarus中的非对称加密

+0

你可能看看这里:http://www.wolfgang-ehrhardt.de/crypt_en.html – 2013-02-10 12:44:52

回答

0

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

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

现在你可以使用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

+0

那么,你不需要使用openssl?有像dpcrypt和一些内置到FPC本身的加密库... – reiniero

1

Lazarus/FPC带有openssh头文件afaik。可能不需要去外部程序路线。

+0

任何示例,请? – opc0de

+0

某些TCP/IP套接字套件(LNET,Indy,Synapse)可能会利用它。研究他们的代码。 –