有一个HMAC-SHA1.dll的文件,
里面有两个:
int HMAC_SHA1(BYTE *text, const int text_len, BYTE *key, const int key_len, BYTE *digest, const int digest_len);
int Base64Encode(BYTE *src, const int src_len, BYTE *dst, const int dst_len);怎么在delphi里,声明和使用这两个函数。
测试数据有
text=GET&%2Fdeal%2FsellerSearchDealList.xhtml&accessToken%3Dad39b7dbd59b87cda827223c0e520d6f%26appOAuthID%3D700042973%26charset%3Dgbk%26format%3Dxml%26randomValue%3D40898%26sellerUin%3D1280863473%26timeStamp%3D1371222640062%26uin%3D1280863473%26zhongwen%3D%D6%D0%CE%C4
key=hdUMwmU4P5jQtHpC&
返回值,digest=tPJTxXC+OlgzL/RXPrS247VJIyE=
里面有两个:
int HMAC_SHA1(BYTE *text, const int text_len, BYTE *key, const int key_len, BYTE *digest, const int digest_len);
int Base64Encode(BYTE *src, const int src_len, BYTE *dst, const int dst_len);怎么在delphi里,声明和使用这两个函数。
测试数据有
text=GET&%2Fdeal%2FsellerSearchDealList.xhtml&accessToken%3Dad39b7dbd59b87cda827223c0e520d6f%26appOAuthID%3D700042973%26charset%3Dgbk%26format%3Dxml%26randomValue%3D40898%26sellerUin%3D1280863473%26timeStamp%3D1371222640062%26uin%3D1280863473%26zhongwen%3D%D6%D0%CE%C4
key=hdUMwmU4P5jQtHpC&
返回值,digest=tPJTxXC+OlgzL/RXPrS247VJIyE=
解决方案 »
- 启动一个程序,该程序启动时发现当前已经运行本程序一个实例时的处理问题
- 怎么让打印机打得大一些?
- 请教:C 语言中 unsigned char com_port 在 DELPHI 中应该定义为什么呢?谢谢!
- 怎样通过ado接口再不同数据库之间转换数据?
- 用什么工具可以很方便的打开 DBF 格式的文件啊,
- 关于CheckListBox的简单问题
- delphi中的QReport如何使用,有简明教程最好
- 请问TADOQuery类中类似GotoKey的方法有哪些啊?
- 请教:我希望我的程序,在检查到cpu忙时,让出控制权,在检查到空隙时运行,该怎么做?
- 100求程序员考试怎么考?在那里报名?(20分没人理?)
- 如何从bpl文件或dll,继承窗口。
- illegal lob length marker 54485 IMP-00098: INTERNAL ERROR: impgst2
function HMAC_SHA1(text:PBYTE; const text_len:integer; key:PBYTE; const key_len:integer;
digest:PBYTE; const digest_len:integer):integer;funciton Base64Enconde(src:PBYTE; cons src_len:integer; dst:PBYTE; const dst_len:integer)
:Integer;
var
text,key, digest:PBYTE;
resVal: integer;
const
txt_len = 64; // 大小自己自己按需设定
digest_len = 32;
key_len = 16;
begin
getmem(text, txt_len);
getmem(digest, diges_len);
getmem(key, key_len);
resVal := HMAC_SHA1(text, txt_len, key, key_len,digest, digest_len);
freemem(text);
freemem(key);
freemem(digest);
end;
怎么根据dst:PBYTE、和dst_len:integer,得到string型值。
参数是byte数组或byte*,跟string有啥关系啊。
重要的是,参数要输入什么,你得看该函数的说明文档,不然百搭。
前面的代码只是给你转换函数声明而已。
返回值是 dst:PBYTE; const dst_len:integer
然后delphi中,要根据这两个转化为string型,怎么写?
arr: array[0..3] of Byte = (65,66,67,0);
var
str: String;
begin
SetLength(str, Length(arr) +1);
Move(arr,str[1],Length(arr));
ShowMessage(str); // 输出 'ABC'
end;
pbyte是C里定义的,能否改为byte数组
已经帮我用C写了一个dll,然后我在delphi7下,可以调用dll就可以了。