用delphi实现qq在Web登录的密码客户端加密功能.
使用到TIdHashMessageDigest5. uses IdHashMessageDigest; function Preprocess(aPassWord, aVerifyCode:string):string;
begin
Result:= Fmd5(md5_3(aPassWord) + UpperCase(aVerifyCode));
end; function md5_3(str:string):string;
begin
Result:= Fmd5(str);
Result:= HashStr2BinStr(Result);
Result:= Fmd5(Result);
Result:= HashStr2BinStr(Result);
Result:= Fmd5(Result);
end; function Fmd5(str:string):string;
var
md5 : TIdHashMessageDigest5;
longWordRec : T4x4LongWordRecord;
begin
md5 := TIdHashMessageDigest5.Create;
try
{$IFDEF ID10}
Result:= md5.HashStringAsHex(str);
{$ELSE}
longWordRec:= md5.HashValue(str);
Result:= md5.AsHex(longWordRec);
{$ENDIF}
finally
md5.Free;
end;
end; function HashStr2BinStr(Hash:string):string;
var
buf:array[0..63] of Char;
i:Integer;
begin
Result:='';
FillChar(buf, SizeOf(buf),0);
SetLength(Result, Round(Length(Hash)/2));
FillChar(Result[1], Length(Result),0);
HexToBin(PChar(Hash), buf,SizeOf(buf));
for i:=0 to Round(Length(Hash)/2)-1 do
Result:= buf;
end; 使用方法: 密码和验证码加密后的结果 = Preprocess
相关文档:
Delphi的源码定位方法网上搜索到好像不太多。
这里分享我自己的两个方法。
引用一段话
引用内容
什么是 MAP 文件?
MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。
DEL ......
在Delphi中使用RAS实现对系统拨号的控制
在企业应用中有时候希望能在程序中实现对拨号网络的控制,以实现自动拨号、自动断开网络。在尝试了多种方式之后,认为RAS是一种比较稳定的方式。在google了网上一些资料后,现整理如下:
一、首先需要有个针对RAS的头文件定义,Ras.pas代码如下
{* Cop ......
@符号返回一个变量的地址
例:
var
f:string;
p:^string; //声明一个字符串类型的指针
begin
f ='demo'; ......
格式:操作数 Shl/Shr 移动位数
说明:操作数与返回值都是整数
例子:16(10) = 10000(2)
16(10) Shr 1 = 10000(2) Shr 1 = 1000(2) = 8(10)
16(10) Shr 2 = 10000(2) Shr 2 = 100(2) = 4(10)
说明:一个整数(I)按位左移一位,相当于把它乘以2,即 I * 2
&n ......
一、整数类型
类型 所占字节数 取值范围
byte 1 0-255
word 2 0-65535
shortint 1 -128-127
smallint 2 -32768-32767
integer 4 -214748648-214748467
longint 4 -214748648-214748467
cordinal 4 0-2147483647
二、实数类型
类型 所点字节数 取值范围
Real 6 ±2.9×10的负39次方到1.7× ......