使用RSA算法除了加密解密之外(加密解密的代码可以查看本站PHP使用RSA算法加密解密数据 这篇文章),在支付等接口方面通常还会用到生成签名和验证签名操作,下面是PHP代码:
class RSA
{
/**
* RSA签名
* @param $data 待签名数据
* @param $private_key 私钥字符串
* return 签名结果
*/
function rsaSign($data, $private_key,$sign_type='OPENSSL_ALGO_SHA1') {
$search = [
"-----BEGIN RSA PRIVATE KEY-----",
"-----END RSA PRIVATE KEY-----",
"\n",
"\r",
"\r\n"
];
$private_key=str_replace($search,"",$private_key);
$private_key=$search[0] . PHP_EOL . wordwrap($private_key, 64, "\n", true) . PHP_EOL . $search[1];
$res=openssl_get_privatekey($private_key);
if($res)
{
openssl_sign($data, $sign,$res,$sign_type);
openssl_free_key($res);
}else {
exit("私钥格式有误");
}
$sign = base64_encode($sign);
return $sign;
}
/**
* RSA验签
* @param $data 待签名数据
* @param $public_key 公钥字符串
* @param $sign 要校对的的签名结果
* return 验证结果
*/
function rsaCheck($data, $public_key, $sign,$sign_type='OPENSSL_ALGO_SHA1') {
$search = [
"-----BEGIN PUBLIC KEY-----",
"-----END PUBLIC KEY-----",
"\n",
"\r",
"\r\n"
];
$public_key=str_replace($search,"",$public_key);
$public_key=$search[0] . PHP_EOL . wordwrap($public_key, 64, "\n", true) . PHP_EOL . $search[1];
$res=openssl_get_publickey($public_key);
if($res)
{
$result = (bool)openssl_verify($data, base64_decode($sign), $res);
openssl_free_key($res);
}else{
exit("公钥格式有误!");
}
return $result;
}
}
$str = '11223344';
echo '待签名的数据是' . $str . '<hr>';
$obj = new RSA();
//
$sign = $obj->rsaSign($str,file_get_contents('./private.txt'));
echo '签名后的数据是' . $sign . '<hr>';
if($obj->rsaCheck($str,file_get_contents('./public.txt'),$sign)){
echo '验证成功';
}else{
echo '验证失败';
}
默认签名方式为RSA(OPENSSL_ALGO_SHA1)如果使用RSA2也比较简单只需要在调用签名和验签的方法里面多增加最后一个参数为OPENSSL_ALGO_SHA256就可以了,增加参数后执行的对应方法内的代码如下:
//签名 RSA2
openssl_sign($data, $sign,$res,OPENSSL_ALGO_SHA256);
//验签 RSA2
openssl_verify($data, base64_decode($sign), $res,OPENSSL_ALGO_SHA256);
-
不管你有多大的梦想,有多牛的想法 台湾宾果查看走势图,有再多的兴趣爱好,但 福彩双色球查看走势图,一懒毁终生。别让懒惰吞噬 澳洲幸运20查看走势图你的梦想。(0) 回复 (0)
-
讨债公司/蓝月传奇辅助/蓝月辅助(0) 回复 (0)
-
上海六院回应“医务人员肢体冲突”水泵东北暴雪来了泵厂家中国小伙在俄罗斯花170元加76升油水泵公司一美国记者在基辅郊区被枪杀球阀波兰男子诱骗乌难民至家中强奸 水泵 离心泵 泵 上海离心泵 水泵厂 水泵厂家 泵厂家 离心水泵 上海水泵厂 上海水泵公司 螺杆泵 污泥螺杆泵13 上海螺杆泵 螺杆泵10 上海水泵厂 上海水泵公司 焊接球阀 全焊接球阀 直埋全焊接球阀 埋地全焊接球阀 Fully Welded Ball Valve all Welded Ball Valve 全焊接阀门 球阀 全焊接球阀 焊接球阀 泵厂家 泵 螺杆泵 帕特(0) 回复 (0)
-
美要求俄就不会入侵乌克兰发表声明水泵柬埔寨血奴案泵厂家因轻信58同城招工广告,江苏男子遭胁迫偷渡至柬埔寨后,被圈养充当“血奴”一事引发关注水泵公司23岁浙江女子在柬埔寨失踪数日球阀拜登:俄或在未来几天攻击乌克兰 焊接球阀 全焊接球阀 直埋全焊接球阀 埋地全焊接球阀 泵 水泵 离心泵 上海离心泵 水泵厂 水泵厂家 泵厂家 帕特 上海水泵厂 上海水泵公司 螺杆泵 污泥螺杆泵13 上海螺杆泵 球阀厂10 Fully Welded Ball Valve all Welded Ball Valve 全焊接阀门 球阀 全焊接球阀 焊接球阀 泵厂家 泵 螺杆泵 帕特(0) 回复 (0)
-
美要求俄就不会入侵乌克兰发表声明水泵柬埔寨血奴案泵厂家因轻信58同城招工广告,江苏男子遭胁迫偷渡至柬埔寨后,被圈养充当“血奴”一事引发关注水泵公司23岁浙江女子在柬埔寨失踪数日球阀拜登:俄或在未来几天攻击乌克兰 焊接球阀 全焊接球阀 直埋全焊接球阀 埋地全焊接球阀 泵 水泵 离心泵 上海离心泵 水泵厂 水泵厂家 泵厂家 帕特 上海水泵厂 上海水泵公司 螺杆泵 污泥螺杆泵13 上海螺杆泵 球阀厂10 Fully Welded Ball Valve all Welded Ball Valve 全焊接阀门 球阀 全焊接球阀 焊接球阀 泵厂家 泵 螺杆泵 帕特(0) 回复 (0)
-
美要求俄就不会入侵乌克兰发表声明水泵柬埔寨血奴案泵厂家因轻信58同城招工广告,江苏男子遭胁迫偷渡至柬埔寨后,被圈养充当“血奴”一事引发关注水泵公司23岁浙江女子在柬埔寨失踪数日球阀拜登:俄或在未来几天攻击乌克兰 焊接球阀 全焊接球阀 直埋全焊接球阀 埋地全焊接球阀 泵 水泵 离心泵 上海离心泵 水泵厂 水泵厂家 泵厂家 帕特 上海水泵厂 上海水泵公司 螺杆泵 污泥螺杆泵13 上海螺杆泵 球阀厂10 Fully Welded Ball Valve all Welded Ball Valve 全焊接阀门 球阀 全焊接球阀 焊接球阀 泵厂家 泵 螺杆泵 帕特(0) 回复 (0)
-
讨债公司 搬家公司 蓝月传奇辅助(0) 回复 (0)
-
农村的单身汉变得越来越多,为什么现在娶媳妇变得如此困难呢 虽然我国近几十年发生了翻天覆地的变化,但受到了传统观念的影响,在很多方面还是不 够开放。尤其是在农村地区,结婚生子除了自身的需求外,很多时候都是为了一个家族的 繁衍和香火的延续。因此除了一些特殊的原因外,很多人在到了一定的年龄都会考虑结婚 的事情。 全焊接球阀 焊接球阀 直埋全焊接球阀 埋地全焊接球阀 离心水泵 离心泵 螺杆泵 上海离心泵 化工水泵 磁力泵 化工泵 污泥螺杆泵 上海螺杆泵 螺杆泵厂 帕特 埋地球阀 直埋焊接球阀 埋地焊接球阀 燃气焊接球阀 供暖焊接球阀 球阀 蝶阀 球阀厂 Fully Welded Ball Valve Welded Ball(0) 回复 (0)
-
农村的单身汉变得越来越多,为什么现在娶媳妇变得如此困难呢 虽然我国近几十年发生了翻天覆地的变化,但受到了传统观念的影响,在很多方面还是不 够开放。尤其是在农村地区,结婚生子除了自身的需求外,很多时候都是为了一个家族的 繁衍和香火的延续。因此除了一些特殊的原因外,很多人在到了一定的年龄都会考虑结婚 的事情。 全焊接球阀 焊接球阀 直埋全焊接球阀 埋地全焊接球阀 离心水泵 离心泵 螺杆泵 上海离心泵 化工水泵 磁力泵 化工泵 污泥螺杆泵 上海螺杆泵 螺杆泵厂 帕特 埋地球阀 直埋焊接球阀 埋地焊接球阀 燃气焊接球阀 供暖焊接球阀 球阀 蝶阀 球阀厂 Fully Welded Ball Valve Welded Ball(0) 回复 (0)
-
农村的单身汉变得越来越多,为什么现在娶媳妇变得如此困难呢 虽然我国近几十年发生了翻天覆地的变化,但受到了传统观念的影响,在很多方面还是不 够开放。尤其是在农村地区,结婚生子除了自身的需求外,很多时候都是为了一个家族的 繁衍和香火的延续。因此除了一些特殊的原因外,很多人在到了一定的年龄都会考虑结婚 的事情。 全焊接球阀 焊接球阀 直埋全焊接球阀 埋地全焊接球阀 离心水泵 离心泵 螺杆泵 上海离心泵 化工水泵 磁力泵 化工泵 污泥螺杆泵 上海螺杆泵 螺杆泵厂 帕特 埋地球阀 直埋焊接球阀 埋地焊接球阀 燃气焊接球阀 供暖焊接球阀 球阀 蝶阀 球阀厂 Fully Welded Ball Valve Welded Ball(0) 回复 (0)