当前位置:编程学习 > php >>

关于RSA加密算法请教 - PHP进阶讨论

因和银行系统有交易往来,所以要用到这神奇的算法。简单描述下。? ? 银行提供了私钥文件“.pfx”文件给我,我通过openssl软件生成了3个文件,a.pem,b.pem,c.pem。我现在需要通过这3个文件通过SSL将我的明文签名成数字证书,在这步我失败了,有做过这种方法的朋友希望指点下,感激不尽。。。
答案:
公/钥成对出现,私钥加的密用公钥解,公解加的密用私钥解密。公钥一般用于加密,验证签名私钥一般用于签名签名的具体作法:? ?? ?首先将信息“***”通过散列算法计算后得到的报文摘要,然后通过私钥对摘要进行加密,后面签名有三种证书:建行CA认证中心的根证书、建行网银中心的服务器证书,每 个网上银行用户在浏览器端的客户证书。有了这三个证书,就可以在浏览器与建行网银服务器之间建立起SSL连接。这样,您的浏览器与建行网银服务器之间就有 了一个安全的加密信道。您的证书可以使与您通讯的对方验证您的身份(您确实是您所声称的那个您),同样,您也可以用与您通讯的对方的证书验证他的身份(他 确实是他所声称的那个他),而这一验证过程是由系统自动完成的。银行系统一般是:1. 用对方的公钥加密数据,对方收到后用自己的私钥解密;2. 用你自己的私钥签名数据,对方收到后用你自己的公钥验证签名。 网银在传递数据过程中要把”传递的数据“用自己的私钥进行签名,而且要把”传递的数据“用公钥进行加密客户端有自己的私钥和一个数字证书,其中私钥和服务器中的公钥成对,而且是数字证书中的公钥和服务器上的私钥成对匹配.过程如下:? ? (1)客户A准备好要传送的数字信息(明文)。 (2)客户A对数字信息进行哈希(hash)运算,得到一个信息摘要。 3)客户A用自己的私钥(SK)对信息摘要进行加密得到客户A的数字签名,并将其附在数字信息上。 4)客户A随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。 5)客户A用双方共有的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给乙。 6)银行B收到客户A传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。 7)银行B然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。 8)银行B用双方共有的公钥(PK)对客户A的数字签名进行解密,得到信息摘要。银行B用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。 9)银行B将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
到技术吧网站查看回答详情>>
感谢各位大侠的帮助? ? willko提供的这个地址很实用,非常谢谢
到技术吧网站查看回答详情>>
你应该是要用公钥生成密文发到银行系统吧?
到技术吧网站查看回答详情>>

上一个:php输出mysql数据库中指定字段段内容
下一个:php创建mysql数据库时候如何设置字符集?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,