记 thinkphp8 对接openssl-ext-sm2的注意事项

服务器openssl-ext-sm2安装

PHP sm2 国密扩展-CSDN博客文章浏览阅读6.1k次,点赞2次,收藏8次。基于openssl密码库编写的SM2椭圆曲线公钥密码算法PHP扩展特性:非对称加密git地址:https://gitee.com/state-secret-series/openssl-ext-sm2.git。_php sm2https://blog.csdn.net/qq_39316391/article/details/126240650

注意事项解密/加密
//解密
#传递过来的解密数据要加上04
$encryptedData ='04'.'fa970402b3b2688e9ef62b534b1445a0d33ca80dcc2cff6e29fe5dce429d754055f50264dc5574b61edc49f5bf97cc2b54895fd0931f06d5661b0668806e6f0b895ba5813bc6aa97b2ee1906ec0218def1fe961ff683bba81194d0970af7fcceb32db4622aaf';
#私钥
$privateKey = 'b354db114404938da6b8c911bece2e83f1da1a9a717c258410796fc0734ad66d';
#把结果值转换为二进制
$encryptedData = pack("H*", $encryptedData);
#把私钥转换为二进制
$privateKey = pack("H*", $privateKey);
#正常解密
sm2_decrypt($encryptedData, $string, $privateKey);
echo $string;


//加密注意事项
#公钥加密
sm2_encrypt($msg, $encrypt, $pub_key);

#返回给前端的值要进行二进制到十六进制的转换,示例如下
$encrypt = unpack("H*", $encrypt)[1];

#如果是通过sm2_key_pair生成的公钥私钥,私钥需要转换为十六进制再给前端,示例如下
$pri_key = unpack("H*", $pri_key)[1];

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
thinkphp Access-Control-Allow-Origin 报错是由于跨域访问时没有正确设置 Access-Control-Allow-Origin 头部字段引起的。在给定的 PHP 代码中,Access-Control-Allow-Origin 被设置为绑定 `$origin_arr` 数组内的域名。 根据给定的代码片段,Access-Control-Allow-Origin 的值是根据请求中的 Origin 头部字段判断的。如果 Origin 头部字段的值在 `$origin_arr` 数组中,则允许跨域访问并将 Access-Control-Allow-Origin 设置为该值。 然而,需要注意的是,在引用中提到的 Access-Control-Allow-Origin 一般情况下只能绑定一个值。但是,根据给定的代码,通过在 `$origin_arr` 数组中添加多个域名,可以实现绑定多个值的效果。这是因为在代码中使用了 in_array() 函数来检查是否存在匹配的域名。 因此,如果 thinkphp Access-Control-Allow-Origin 报错,可能有以下几个原因导致: 1. `$origin_arr` 数组中的域名没有匹配到请求中的 Origin 头部字段的值。 2. `$origin_arr` 数组中的域名格式不正确,或者存在拼写错误。 3. 请求中没有包含 Origin 头部字段。 为了解决这个问题,你可以按照以下步骤进行排查和修复: 1. 确保 `$origin_arr` 数组中包含与请求中的 Origin 头部字段值匹配的域名,且格式正确。 2. 检查请求中是否包含 Origin 头部字段,并确保该头部字段的值与预期的域名匹配。 3. 如果你使用的是 thinkphp 框架,可以在应用的配置文件中设置 Access-Control-Allow-Origin 头部字段的值。例如,可以在 config.php 文件中添加以下代码: ```php 'header' => [ 'Access-Control-Allow-Origin' => implode(',', self::$origin_arr), 'Access-Control-Allow-Methods' => 'POST, GET', 'Access-Control-Allow-Credentials' => true, 'Access-Control-Allow-Headers' => 'token, Content-Type, Authorization, Accept, Range, Origin, Token, language', ], ``` 这样可以确保在每个请求中都正确设置了相应的头部字段。 综上所述,如果 thinkphp Access-Control-Allow-Origin 报错,你可以检查以上提到的原因并进行相应的修复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值