Delphi端(单机),签名端
uses
uQRCode, DateUtils,IdHash,IdHashMessageDigest;
procedure TForm1.btn3Click(Sender: TObject);
var
ttrim,ss,str,str1,str2:string;
MD5: TIdHashMessageDigest5;
begin
MD5 := TIdHashMessageDigest5.Create;
str := 'http://***.*********.com/hb/index.php';
str1:=参数2;
ttrim:=参数1;
key:=密钥;
//简易签名过程
ss :=MD5.HashStringAsHex(str1+ttrim+key);//烁珣
url:='?0o0o00oo='+ttrim+'&o0o0='+str1+'&oo00oo='+ss;
//生成二维码
img2.Canvas.FillRect(rect(0, 0, img2.Width, img2.Height));
CreateQRCode(url, 0, 0, 3, img2.Canvas.Handle);
end;
php端(联网)。验证签名端
$a=$_GET['0o0o00oo']; //显示"ok"
$b=$_GET['o0o0']; //显示"ok"
$c=$_GET['oo00oo']; //显示"ok"
//key即密钥,排除传输参数的验证
$d=strtoupper(md5($a.$b.key));
//验证签名
if ($d=$c){
echo '验证通过';
//可以再次验证签名是否已经使用过了,以保证不可以被重复扫码
}
else
{
echo '验证失败';
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。