我们使用delphi作为win32开发,编写的rsa加密,需要在服务器使用公钥加密,而在客户端使用私钥解密.
本程序使用的加密dll为delphi所写,包含3个函数,其函数原形如下:
function CreateKey(var key:RsaKey):boolean;export; stdcall;
function EncryptRsa(key:pchar;commkey:pchar;text:pchar):pchar;export; stdcall;
function DecryptRsa(key:pchar;commkey:pchar;text:pchar):pchar;export; stdcall;
其中,在rsakey类型原形为
type RsaKey
=
packed record
publickey:pChar;
privatekey:pChar;
commkey:pchar;
end;
在C#中首先需要
DllImport将dll导入,并声明其外部方法.
public
struct
RsaKey
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
public string publicKey;
public string privateKey;
public string commKey;
}
[DllImport(
@"
Security.dll
"
)]
public
static
extern
string
EncryptRsa(
string
key,
string
commkey,
string
text);
[DllImport(
@"
Security.dll
"
)]
public
static
extern
string
DecryptRsa(
string
key,
string
commkey,
string
text);
[DllImport(
@"
Security.dll
"
)]
public
static
extern
bool
CreateKey(
ref
RsaKey key);
其中Rsakey对应struct.
其中的测试demo大家可以下载,包含c#以及delphi
--------------------------------
C#Demo DelphiDemo