A. 用php如何实现数字签名啊··跪求高人指点···
以下是资料:
php中数字签名与校验
1. 先用php生成一对公钥和私钥
$res = openssl_pkey_new();
openssl_pkey_export($res,$pri);
$d= openssl_pkey_get_details($res);
$pub = $d['key'];
var_mp($pri,$pub);
输出依次为私钥和公钥的pem字串,如:
string(916) "-----BEGIN PRIVATE KEY-----
wsETi80b4ZyYlYUSsAtvS7ZG+GSLAox24TKNwWIy5cUdKfK/5QEJjZ0S8LjRSYCG
+8z
+st3fjEblEfcPcoIq5uiKx2bnO3
f9g0yt+
+UI8OhmLbw/Vyh6Ii1glwMfyq
VS2lAakj9d1hqLYZvw+eNeZBnzZNPuMJg5aj/WKUqasCQQDHiFLS7Yb1rbhfjmRt
ZL4zXuvX1hVjTNo2TeZwPniGpYa+QHcauDDep5C9q//n+D+ZtkbkECxpOVhrUHSI
+
+a2epF/YENEtjL6N2RE8Y+0oTdlwr
b4dQkRkfqCHtyrWOeRcC1Y6FyTfNj+cRBzdIcmFc21hxj6HKy2M6/XGI3rAE5L+B
mmlSmN1enhoCUqc=
-----END PRIVATE KEY-----
"
string(272) "-----BEGIN PUBLIC KEY-----
+Y4dUMLBE4vNG+Gc
+UBCY2dEvC40UmAhraPS5MEE0Ky
mPAQV1QkEEt1V0as+KJ/W5nBksizCur0MbfTZyaZOmgZiRO89+fvM00y8HVG2GjA
HGKq7GA34AUjQYMGwwIDAQAB
-----END PUBLIC KEY-----
"
2. 保存好自己的私钥,把公钥可以公开给别人。如果需要对某数据进行签名,证明那数据是从你这里发出的,就需要用私钥:
$res = openssl_pkey_get_private($pri);
if (openssl_sign('hello', $out, $res))
var_mp(base64_encode($out));
上例中 $pri 为自己的私钥,'hello' 为待签名的数据,如果签名成功,最后输出为base64编码后的签名,如:
j19H+C/NQEcyowezOQ+gmGi2UoPJNXyJ+/p/pp7il+xGz2aUWdOXkJFgIc/+ieokMLFm9cmtN2hGag9vq1s=
3. 别人收到你的数据 'hello' 和签名字串,想验证这是从你发来的数据的话,用你公开的公钥验证:
$sig = base64_decode($sig);
$res = openssl_pkey_get_public($pubkey);
if (openssl_verify('hello', $sig, $res) === 1)
; // 通过验证
上例中刚开始的 $sig 为之前你base64编码过的签名, $pubkey 为你的公钥
php中这种签名使用的是RSA算法;数字签名可以在 单点登录 等系统中派上用场。
B. php如何做数字签名
概括就是:“学会用PHP的openssl扩展!!”
1、先用openssl_pkey_new()函数产生一个私钥pri_key,
2、用openssl_csr_new()函数以私钥pri_key 产生一个信用证csr
3、用openssl_sign()函数以私钥pri_key对一段数据data产生一个数字签名signature。
4、用openssl_pkey_get_public()函数从信用证csr中获得公钥pub_key
5、把公钥pub_key、数字签名signature、数据data发给对方。
6、对方收到3项后,用openssl_verify()函数或其他验证工具,验证签名。
7、对方验证有效,开始使用你的信息data。验证无效,再找你扯皮。
整个过程的双方可以互换,即可让对方出具三项,你来验证。
C. 请问大家 .电子签名法 的定义是什么
什么是电子签名?
《电子签名法》中明确规定:电子签名是指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。而数据电文是指以电子、光学、磁或者类似手段生成、发送、接收或者储存的信息。
这部法律规定、可靠的电子签名与手写签名或者盖章具有同等的法律效力,届时消费者可用手写签名、公章的“电子版”、秘密代号、密码或指纹、声音、视网膜结构等安全地在网上“付钱”、“交易”及“转帐”。
http://ke..com/lemma-php/dispose/view.php/15288.htm
D. 如何进行电子签名
第一步
要在正规的第三方电子平台上签署。电子签约与传统的纸质签约不同,是在网络上签署的,所以是必须要在第三方电子平台上签署才行。国内电子平台诸多,放心签是被广大企业所信赖的一个,企业在放心签签署的时候还会办法相对于的电子证书,以便于保障电子签章的真实性与安全性。
第二步
需要进行实名认证。当下是网络化逐渐真实的环境,因此用户在进行电子签章的时候需要进行实名认证,证实其真实性。放心签在进行实名认证的时候会有手机号认证、银行卡认证、刷脸认证、手持身份证认证等多种方式,为用户提供了安全保障措施,让用户在使用的时候用的安心。
第三步
创建专属的电子签名。当用户在第三方电子平台通过实名认证之后,便可以创建专属于自己的电子签章了,这个电子签章会以数据电文的形式保存在第三方电子签名平台。在创建自己的电子签章的时候,可以在第三方电子签名平台设置手写签名,也可以使用系统生成的电子签名,多种方式可以选择。
E. php 做app 签名验证怎么做
自己写一套加密的算法,最好用到RSA,APP端给公钥加密数据,服务器端PHP使用私钥解密
F. php实现签名,手头上有中行提供的pfx文件,进行签名后传递给java做签名验证,请大神帮忙。
把问题难点和细节发到[email protected]
可以帮你看看的
用1,生成信用证,php中中签名数据传给java,
谨慎操作应该无误的。
G. PHP+JS如何实现网上签名功能
通过 js canvas给用户进行签名,提交时候生成图片/base64.
PHP接收图片/base64保存到服务器对应路径,把路径入库.
H. 电子签名怎么弄
步骤如下:
工具:Magicbook。
操作系统:Windows 10。
软件:PDF阅读器。
1、在纸上写下需要的电子签名,并将签名使用相机或者扫描仪制成图片。
I. 电子签名是什么
《电子签名法》中,电子签名的定义是“数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。通过技术手段实现传统的纸面签字或者盖章的功能,以确认交易当事人的真实身份,保证交易的安全性、真实性和不可抵赖性”。
J. 如何电子签名怎么弄
1、在纸上写下需要的电子签名,并将签名使用相机或者扫描仪制成图片。