PHP怎么用openssl_sign实现SHA, SHA2加密与验证

这次与Java服务端联调,对方采用SHA256WithRSA加密, 开始以为是对应php的openssl_sign()函数的默认签名算法,后面发现不是,遂记录避免以后踩坑.

class RSA
{
	$public_key  = 'aaaaaaaa';
	$private_key = 'bbbbbb';

/**
*  格式公钥与私钥
*  $key string 公钥或私钥
*  $type  string public|private 
*/
public function formatKey($key,$type = 'public')
{
	$key= chunk_split($key,64,"\n");
	if ('public' == $type){
		$key="-----BEGIN RSA PRIVATE KEY-----\n".$key."-----END RSA PRIVATE KEY-----\n";
	} else {
		$key="-----BEGIN RSA PRIVATE KEY-----\n".$key."-----END RSA PRIVATE KEY-----\n";
	}
	return $key;
}

/**
* 加密
* $encode_str string 待加密的字符串
* $key string 公钥或私钥,一般用私钥
* $type string OPENSSL_ALGO_SHA1|OPENSSL_ALGO_SHA256  对应sha1与sha2
*/
public function encode($encode_str,$key,$type = OPENSSL_ALGO_SHA1)
{
    $result = false;
    if (openssl_sign($data, $result, $key,$type)){
        $result = base64_encode(''.$result);
    }
    return $result;
}

/**
* 验证
* $verfiy_str string 待验证的字符串
* $key string 公钥或私钥,一般用公钥
* $type string OPENSSL_ALGO_SHA1|OPENSSL_ALGO_SHA256  对应sha1与sha2
*/
public function verfiy($verfiy_str,$sign,$key,$type = OPENSSL_ALGO_SHA1)
{
	return openssl_verify($verfiy_str,base64_decode($sign),$key,$type);
}

}

原创文章,作者:VUXUL,如若转载,请注明出处:http://www.wangzhanshi.com/n/16411.html

(0)
VUXUL的头像VUXUL
上一篇 2025年1月2日 12:39:14
下一篇 2025年1月2日 12:39:16

相关推荐

  • 关于iis免费ssl证书的简介

    互联网信息服务全称为Internet Information Services,简称iis,使用iis浏览器可以做到浏览及时新闻、收发email、处理文件、信息传递等功能,对于用户…

    2025年1月2日
  • 怎么在不卸载现有OpenSSL的情况下源码安装配置新版OpenSSL+Apache

    最近遇到一个问题,需要去安装OpenSSL1.0.1c,但是Ubuntu10.04和11.04都只支持0.9.8版本的OpenSSL包。本来想卸载OpenSSL再安装新版本的。我在…

    ssl证书 2025年1月2日
  • Ssl握手是什么

    想要更好地理解这个ssl握手,就需要了解清楚这个ssl握手协议的整个的过程。这个歌过程之中是用到了公钥还有密钥的,就是所谓的对称加密技术。这个技术的速度比公钥加密技术的要快。其实主…

    2025年1月2日
  • 微信支付接入步骤

    接入步骤 微信支付接入大概步骤如下: 获取支付接口 URL 构建请求参数 发起请求 唤起支付 支付异步通知处理 步骤一中获取支付接口 URL,需要考虑这几点 如何同时支持国内微信支…

    ssl证书 2025年1月2日
  • 免费申请ssl证书的缺点是什么

    有了解过互联网的网友都会知道SSL证书在互联网传输中起着很重要的作用,SSL证书不仅仅很好的保护了客户的信息数据安全,也很好地维护了网站的可信度与安全度。不仅仅是企业给自己的网站部…

    2025年1月2日
  • SSL证书的三大作用

    SSL证书有何作用?为什么那么多人会去购买,网站安装它有什么好处呢?下面由小编给你讲一下SSL证书的三大作用。 ssl证书有何作用?现在很多的人会问到这个问题。那么下面小编来告诉大…

    2025年1月2日
  • ssl证书介绍

    SSL证书又称“服务器证书,https证书,CA证书,网站安全证书”等,是数字证书的一种 SSL证书产品如下:单域名DV版(保护一个具体域名)多域名OV版(可以将多个域名放在一张证…

    ssl证书 2025年1月2日
  • ssl证书价格贵吗?有什么申请要求

    ssl证书价格贵吗?有什么申请要求?很多人都不太了解,今天小编为了让大家更加了解ssl证书,所以给大家总结了以下内容,一起往下看吧。 因为,ssl证书的安全性高,所以,如今有越来越…

    2025年1月2日
  • 使用OpenSSL创建CA和申请证书

    OpenSSL简介 OpenSSL是一种加密工具套件,可实现安全套接字层(SSL v2 / v3)和传输层安全性(TLS v1)网络协议以及它们所需的相关加密标准。 openssl…

    2025年1月2日
  • https ssl证书申请的步骤,浏览器如何查看http证书

    安全证书对于网站来说是很重要的,这些证书可以给网站更好的安全防护,防止网站当中的重要信息,在传输的过程中被篡改或者盗用。因此很多企业在保护网站信息安全的时候,都会选择申请https…

    2025年1月2日

发表回复

登录后才能评论