Mail to Keith Dan
keith的天空
海阔凭鱼跃,天高任鸟飞

我们使用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
        
{
            
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
posted on 2007-11-30 14:36  KeithDan  阅读(2150)  评论(14编辑  收藏  举报