2013-02-04 83 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)可能會利用它。研究他們的代碼。 –