zoukankan      html  css  js  c++  java
  • openssl_private_encrypt加密失败

    $config = [
        'digest_alg' => 'SHA256',
        "private_key_bits" => 1024,
        "private_key_type" => OPENSSL_KEYTYPE_RSA
    ];
    
    $privateKeyResource = openssl_pkey_new($config);
    openssl_pkey_export($privateKeyResource, $privateKey);
    $publicKey = openssl_pkey_get_details($privateKeyResource)['key'];

    openssl_private_encrypt($data, $crypted, $privateKey, OPENSSL_PKCS1_PADDING);

    加密失败的原因是:

      我设置的private_key_bits是1024bit, 转换成字节解释128。而我选择的填充方式是OPENSSL_PKCS1_PADDING,它需要11个字节。因此data最大长度只有117。但是我的要加密的data有123个字节。因此return false。

    解决方案:

      (1)将private_key_bits改成2048

        (2) 根据private_key_bits和填充方式,分段加密

    参考文档:https://blog.csdn.net/leedaning/article/details/51780511

  • 相关阅读:
    Spring Boot邮件功能
    jenkins自动部署
    spring boot定时任务解析
    类的加载classload和类对象的生成
    排序算法
    Robbin负载均衡
    ActiveMQ消息中间件
    hystrix熔断器
    css3整理--calc()
    css3整理--media
  • 原文地址:https://www.cnblogs.com/fengliang/p/14045117.html
Copyright © 2011-2022 走看看