PHP实现的MD5结合RSA签名算法实例
本文实例讲述了PHP实现的MD5结合RSA签名算法。分享给大家供大家参考,具体如下:
附:openssl生成证书以及获取公钥和私钥说明
一、RSA方式
1.建立CA根证书1)建立目录RSA2)创建以下子目录certs,crl,newcerts3)在RSA目录下执行以下操作:
echo01>serial
touchindex.txt
opensslreq-new-x509-newkeyrsa:1024-keyoutCA.key-outCA.pem(生成自签名CA证书)2.客户端证书请求
opensslreq-new-newkeyrsa:1024-keyoutddmdd_a.key-outddmdd_a.req(生成ddmdd_a的密钥和证书请求,注意:此处所填写的用户信息必须与CA证书信息完全一致)
opensslrsa-inddmdd_a.key-pubout-outddmdd_a.pub(导出公钥)3.为客户签发证书
opensslca-keyfileCA.key-certCA.pem-inddmdd_a.req-outddmdd_a.pem-notext(使用CA密钥和证书为ddmdd_a签发证书ddmdd_a.pem)
opensslca-keyfileCA.key-certCA.pem-insubca_rsareq.pem-outsubca.pem-notext(签发二级CA证书)4.转换证书格式
opensslx509-informpem-outformder-inddmdd_a.pem-outddmdd_a.der
opensslpkcs12-export-inddmdd_a.pem-inkeyddmdd_a_rsakey.pem-outddmdd_a.pfx
opensslpkcs12-inddmdd_a.pfx-outddmdd_a.pem
opensslrsa-inddmdd_a.key-outddmdd_a_open.key(删除私钥密码)5.生成证书撤消列表
echo01>crlnumber
opensslca-keyfile CA.key-certCA.pem-revokeddmdd_a.pem(从CA中撤消证书ddmdd_a.pem)
opensslca-gencrl-keyfileCA.key-certCA.pem-outCA.crl(生成或更新证书撤消列表)6.查看证书信息
opensslx509-inCA.pem-noout–text
二、DSA方式
1.建立CA根证书1)建立目录DSA2)创建以下子目录certs,crl,newcerts3)在DSA目录下执行以下操作:
echo01>serial
touchindex.txt
openssldsaparam-outCA.para1024(生成dsa参数文件)
opensslreq-new-x509-newkeydsa:CA.para-keyoutCA.key-outCA.pem(使用dsa参数生成自签名CA证书)2.客户端证书请求
openssldsaparam-outddmdd_b.para1024(生成dsa参数文件)
opensslreq-new-newkeydsa:ddmdd_b.para-keyoutddmdd_b.key-outddmdd_b.req(使用dsa参数生成ddmdd_b的密钥和证书请求,注意:此处所填写的用户信息必须与CA证书信息完全一致)
openssldsa-inddmdd_b.key-pubout-outddmdd_b.pub(导出公钥)3.为客户签发证书
opensslca-keyfileCA.key-certCA.pem-inddmdd_b.req-outddmdd_b.pem-notext(使用CA密钥和证书为ddmdd_b签发证书ddmdd_b.pem)
三、获取公钥和私钥
a)通过以上方法的生成证书的,可以通过一下命令获得公钥和私钥。
导出公钥:
DSA方式:openssldsa-inddmdd_b.key-pubout-outddmdd_b.pub.pem
RSA方式:opensslrsa-inddmdd_a.key-pubout-outddmdd_a.pub.pem
导出私钥:
opensslrsa-inserver.key-text>private.pem
b)直接生成公钥和私钥:
opensslgenrsa-outprivate.pem1024
opensslpkcs8-nocrypt-topk8-inprivate.pem-outpkcs8.pem
opensslrsa-pubout-inprivate.pempublic.pem另:不清楚RSA算法的推荐看阮老师的http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encodeMD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode更多关于PHP相关内容感兴趣的读者可查看本站专题:《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php正则表达式用法总结》
希望本文所述对大家PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。