php利用openssl生成签名实例程序
2014-11-22 00:00
651 查看
摘要: php利用openssl生成签名实例程序
openssl_sign 默认signature_alg参数是OPENSSL_ALGO_SHA1
如果使用DSA加密方式需要使用OPENSSL_ALGO_DSS1参数
signature_alg 其他参数
OPENSSL_ALGO_DSS1 (integer)
OPENSSL_ALGO_SHA1 (integer)
OPENSSL_ALGO_SHA224 (integer)
OPENSSL_ALGO_SHA256 (integer)
OPENSSL_ALGO_SHA384 (integer)
OPENSSL_ALGO_SHA512 (integer)
OPENSSL_ALGO_RMD160 (integer)
OPENSSL_ALGO_MD5 (integer)
OPENSSL_ALGO_MD4 (integer)
OPENSSL_ALGO_MD2 (integer)
<?php /** * 根据原文生成签名内容 * * @param string $data 原文内容 * * @return string */ function sign($strData) { $filePath = 'test.pfx'; if(!file_exists($filePath)) { return false; } $pkcs12 = file_get_contents($filePath); if (openssl_pkcs12_read($pkcs12, $certs, '')) { $privateKey = $certs['pkey']; $publicKey = $certs['cert']; $signedMsg = ""; if (openssl_sign($strData, $signedMsg, $privateKey)) { $signedMsg=bin2hex($signedMsg); return $signedMsg; } else { return ''; } } else { return '0'; } } /* openssl_pkcs12_read 可以读取pfx格式的私钥,而不需要非要转成pem格式的文件 */ ?>
openssl_sign 默认signature_alg参数是OPENSSL_ALGO_SHA1
如果使用DSA加密方式需要使用OPENSSL_ALGO_DSS1参数
signature_alg 其他参数
OPENSSL_ALGO_DSS1 (integer)
OPENSSL_ALGO_SHA1 (integer)
OPENSSL_ALGO_SHA224 (integer)
OPENSSL_ALGO_SHA256 (integer)
OPENSSL_ALGO_SHA384 (integer)
OPENSSL_ALGO_SHA512 (integer)
OPENSSL_ALGO_RMD160 (integer)
OPENSSL_ALGO_MD5 (integer)
OPENSSL_ALGO_MD4 (integer)
OPENSSL_ALGO_MD2 (integer)
相关文章推荐
- php利用openssl实现RSA非对称加密签名
- java/php/c#版rsa签名以及java验签实现openssl生成
- php利用openssl实现RSA非对称加密签名
- java/php/c#版rsa签名以及java验签实现openssl生成
- php 利用数据库教程信息生成静态页面实例代码
- PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解
- [PHP]利用openssl_random_pseudo_bytes和base64_encode函数来生成随机字符串
- 刚刚测试的php生成静态页程序(实例)
- php利用数据库教程信息生成静态页面实例代码
- 利用PHP的GD库生成高质量的缩略图
- 如何利用iText在java程序中生成PDF文件
- 利用SQL存储过程生成程序编号的一种方法(转)
- 如何利用Crystal Report程序来生成PDF版本
- 使用php 的缓冲区功能和apache的url重写功能实现静态html生成实例
- MDI程序中反射生成菜单并与权限控制的结合(利用XML将模块组件装配与卸载)
- php生成静态页面的简单实例
- 网页生成缩略图程序在win2003下IE控件实例超过10个出现错误的问题
- 利用SQL存储过程生成程序编号的一种方法
- PHP实例程序:实现给上传图片加水印图案的做法
- 利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆