zoukankan      html  css  js  c++  java
  • 关于PHP的 RSA加密函数openssl_pkey_get_private()/openssl_get_privatekey()返回false问题

    文档描述为:

    然而  openssl_pkey_get_private(AppSecret) 这一步将AppSecret传入返回false,之后在网上找了好久找到一个格式是可以正常返回的,但是在服务器上跑的时候又不返回参数了,而后又大费周折才找到一个都能用的格式!!

    前提需要先打开php.ini里的openssl。

    将私钥单独放在一个文件(private.pem)中(格式千万不要变,可以复制我的进去先尝试一下)

    private.pem文件:
    -----BEGIN RSA PRIVATE KEY-----
    MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAL9nq0MHciPvjVgC
    Ta2yEUm6enG9zDKLKTJC4HVhP1CYnwbgc29LU8ngxnQmpCizrpKeUsjBwNNmZ/aM
    23jEaPYgvh1FrtUblwtjPkZReSmhbsCAvqQYkh7Q6+fgUArmeSHkVBKIWoVGrF3K
    fL7T+aUEIUQ88dstAhknXXYqBHLnAgMBAAECgYEAujWTCfzecFOHQM3M4GTSKNZA
    dRNe6vUzuPATCl73h+NTIw+NfgLcmxQQPcOyBN75wS5B/4lvnLqN/fB/O/ho2wp8
    UzdGbXw0Tk3jc/MiRMfFU6oi6Km/Q0SxWjKngdFq3LHF+f1ue6/0rat6L5ukk/lh
    6h0OdcpF3u8kyMGznfECQQDu8uzez7+Hbqc51kfutm0jp8e8tkCwtjZoO5X36hmy
    mmbsJLitqToG2NSeuejJdZv+C52pgoBSGJUjNa8IqTLLAkEAzRA4Iv3/hlq7SEq/
    bOTl1unyPT2keR3XUgx076zGsbYOXL0ORlyeBkmLJVJBCdD95NLAciOHX13KX8yN
    paGQ1QJAcfiGiKP4i8V4l7qgJrj2h4owV89qPZ87hi3dkxki1rCUpM/DEnnkBn4H
    tAmigezJ0buCoOZxBDdbcybY7L2fTwJAfS5Ehp/1h8gFgfkXaFtHL237EYV6zPD5
    i73M+K7JUJzpoZVLjIpncUEd7zeKOnrZMwGwtzyXHBF+RAL0CUNazQJBAJTaWl3P
    4iP53O4EqXFJ1AQV7tqwa/7w48AioY9dCMLv/9kZe9sbB0OKo1O18bRVXgmpuxWI
    4pO4mcYESN+7/3w=
    -----END RSA PRIVATE KEY-----

    php代码:

    <?php
    
            $appId = xxx;//替换自己的
            $userId = xxx;//替换
            $private_content = file_get_contents(__DIR__.'/private.pem');
            if(!$private_key = openssl_pkey_get_private($private_content)){
                  die('error');
            }
            $original_str = 'appId='.$appId.'&userId='.$userId;
            openssl_sign($original_str,$sign,$private_key);
            openssl_free_key($private_key);
            echo $sign=base64_encode($sign);

    之前本地有返回而服务器上没有返回的时候我也想了许多原因 什么php版本啊 甚至连openssl.dll我都重新覆盖了一遍,最后确定是格式的问题。。怎么说呢 一路的坑真的很多吧。。。

  • 相关阅读:
    Java8 Stream Function
    PLINQ (C#/.Net 4.5.1) vs Stream (JDK/Java 8) Performance
    罗素 尊重 《事实》
    小品 《研发的一天》
    Java8 λ表达式 stream group by max then Option then PlainObject
    这人好像一条狗啊。什么是共识?
    TOGAF TheOpenGroup引领开发厂商中立的开放技术标准和认证
    OpenMP vs. MPI
    BPMN2 online draw tools 在线作图工具
    DecisionCamp 2019, Decision Manager, AI, and the Future
  • 原文地址:https://www.cnblogs.com/lonmyblog/p/7886497.html
Copyright © 2011-2022 走看看