char* hash_password_v1(const unsigned char* b0 , int b0len, const unsigned char* password , int psdlen)
{
unsigned char* dst = (unsigned char*)malloc(b0len + psdlen + 1);
unsigned char tmp[20];
char* res;
memset(tmp , 0 , sizeof(tmp));
memset(dst , 0 , b0len + psdlen + 1);
memcpy(dst , b0 , b0len);
memcpy(dst + b0len , password , psdlen); tmp=..........//这行不管 free(dst);
res = hextostr(tmp , 20);
return res;
}
解决方案 »
- delphi radioButton和checkbox字体怎么改
- 如何枚举出所有USB设备中找到U盘,并取得其逻辑盘符?
- opendialog打开多个文件时,为什么opendialog.files.strings[0]是选择的最后一个文件啊?
- 谁用过cell组件开发报表,进来看看
- 为何线程中不能改变窗体元素,请大虾帮忙看下代码.
- 在Delphi中如何生成的.exe文件不用安装Delphi软件也能执行。
- 各位大哥能介绍一下Object Pascal 有什么好书吗?
- 用什么函數可以得到電腦的網卡編號和ip地址﹐我好著急﹗
- DELPHI 模拟鼠标点击的问题,有经验的大虾来300分
- 如何把button上的文字分两行?我实在是找不到答案了
- Delphi有没有这样的时间编辑控件?
- delphi删除根目录下.ini的所有文件
function hash_password_v1(b0: pansichar; b0len: integer; password: pansichar; psdlen: integer): pansichar;
var
dst,res,hex: pansichar;
tmp: array[0..19] of char;
begin
Getmem(dst,b0len + psdlen + 1);
fillchar(tmp,sizeof(tmp),0);
fillchar(dst,b0len + psdlen + 1,0);
move(b0^,dst^, b0len);
move(password^,Pointer(londword(dst)+b0len)^,psdlen);
tmp=..........//这行不管
FreeMem(dst,strlen(dst)+1);
Getmem(hex,21);
fillchar(hex,21,0);
move(tmp^,hex^,20);
Getmem(res,21);
fillchar(hex,21,0);
BintoHex(hex,res,20);
return res; //注意返回内存记得释放end;
var
dst,res,hex: pansichar;
tmp: array[0..19] of char;
begin
Getmem(dst,b0len + psdlen + 1);
fillchar(tmp,sizeof(tmp),0);
fillchar(dst,b0len + psdlen + 1,0);
move(b0^,dst^, b0len);
move(password^,Pointer(longword(dst)+b0len)^,psdlen);
// tmp=..........//这行不管 FreeMem(dst,strlen(dst)+1);
Getmem(hex,21);
fillchar(hex,21,0);
move(tmp,hex^,20);
Getmem(res,21);
fillchar(hex,21,0);
BintoHex(hex,res,20);
result := res; //注意返回内存记得释放end;