利用非托管dll实现多平台加密

我们使用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

转载于:https://www.cnblogs.com/KeithDan/archive/2007/11/30/978323.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值