十博
当前位置: 十博 > 十博 >
详解PHP版本兼容之openssl调用参数_php技巧_脚本之家

配置参数

  • 特色:十博最佳体育平台,金贝摄影灯 EC二代新款上市 ECII-300闪光灯 室内影室灯 300W

查看完整参数>>

复制代码 代码如下:h.abs; // => 123 :纯数字字符串Math.abs; // => 123Math.abs; // => 123Math.abs; // => 123Math.abs; // => NaN :非纯数字字符串

由上面源代码可以很清晰的发现问题所在,随着php版本的升级,其所在的openssl扩展对应的调用条件也增加了很多,最后导致上述问题的源码也只是switch…case少了几个条件,在此也希望大家发现问题的时候,可以先去解决问题,然后有兴趣的话可以去查看源代码分析下问题所导致的原因。

1.3 静态属性

resource - 一个密钥, 通过 openssl_十博,get_publickey() 函数返回。

复制代码 代码如下:Math.random(); // => 0.8982374747283757Math.random(); // => 0.39617531932890415Math.random(); // => 0.35413061641156673Math.random(); // => 0.0544410517904907461.4.14 Math.round : 四舍五入后取整参数:①value {Number | NumberStr} :数字或者纯数字的字符串。返回值:{Integer} 返回参数四舍五入后的整数。若参数不为数字,返回NaN。示例:复制代码 代码如下:Math.round; // => 3Math.round; // => 2Math.round; // => -3Math.round; // => -2 :-2.5四舍五入为 -2Math.round; // => -2Math.round; // => 3 :纯数字字符串Math.round; // => NaN :非纯数字字符串1.4.15 Math.sqrt :返回参数的平方根参数:①value {Number | NumberStr} :数字或者纯数字的字符串返回值:{Number} 返回参数的平方根示例:复制代码 代码如下:console.log; // => 3console.log; // => 4console.log; // => 5console.log; // => NaN

openssl_verify函数源码

1. Math 对象

data

2.2 定义复制代码 代码如下:var a = 1;var b = 1.1;

signature_alg

2.3 静态属性2.3.1 Number.MAX_VALUE :表示JS中最大的数字,约为 1.79e+3082.3.2 Number.MIN_VALUE :表示JS中最小的数字,约为 5e-3242.3.3 Number.NaN :返回NaN,表示非数字值,与任意其他数字不等,也包括NaN本身。应使用Number.isNaN() 来进行判断。2.3.4 Number.NEGATIVE_INFINITY :返回 -Infinity ,表示负无穷。2.3.5 Number.POSITIVE_INFINITY :返回 Infinity ,表示正无穷。进行计算的值大于Number.MAX_VALUE就返回 Infinity 。2.4 静态方法2.4.1 Number.isInteger :判断参数是否为整数 参数:①value {Number} :数字返回值:{Boolean} 返回参数是否为整数 。纯整数的字符串也返回false。示例:复制代码 代码如下:Number.isInteger; // => trueNumber.isInteger; // => falseNumber.isInteger; // => false :纯整数的字符串也返回falseNumber.isInteger; // => falseNumber.isInteger; // => false :非字符串返回false2.4.2 Number.isNaN :判断参数是否为NaN参数:①value {Object} :任意类型返回值:{Boolean} 返回参数是否为NaN 。示例:复制代码 代码如下:Number.isNaN; // => trueNumber.isNaN; // => false :'NaN'字符串,并不为NaNNumber.isNaN; // => falseNumber.isNaN; // => false2.4.3 Number.parseFloat :把参数转换为浮点数参数:①value {Number | NumberStr} :数字或者纯数字的字符串返回值:{Integer | Float} 返回整数或浮点数数值示例:复制代码 代码如下:Number.parseFloat; // => 1 :整数还是返回整数Number.parseFloat; // => 1.1Number.parseFloat; // => 1 :字符串前面为数字的,只返回数字Number.parseFloat; // => 1.1Number.parseFloat; // => NaN :非数字开头,返回NaNNumber.parseFloat; // => NaN2.4.4 Number.parseInt :把参数转换为整数参数:①value {Number | NumberStr} :数字或者纯数字的字符串返回值:{Integer} 返回整数数值示例:复制代码 代码如下:Number.parseInt; // => 1Number.parseInt; // => 1 :浮点数返回整数Number.parseInt; // => 1 :字符串前面为数字的,只返回数字Number.parseInt; // => 1Number.parseInt; // => NaN :非数字开头,返回NaNNumber.parseInt; // => NaN

背景与问题解决方式

1.3.1 Math.E :常量e。返回自然对数的底数:2.7182818284590451.3.2 Math.PI :常量π。返回圆周率的值 :3.1415926535897931.4 静态方法

static EVP_MD * php_openssl_get_evp_md_from_algo { /* {{{ */ EVP_MD *mdtype; switch  { case OPENSSL_ALGO_SHA1: mdtype = ; break; case OPENSSL_ALGO_MD5: mdtype = ; break; case OPENSSL_ALGO_MD4: mdtype = ; break;#ifdef HAVE_OPENSSL_MD2_H case OPENSSL_ALGO_MD2: mdtype = ; break;#endif case OPENSSL_ALGO_DSS1: mdtype = ; break; default: return NULL; break; } return mdtype;}

static EVP_MD * php_openssl_get_evp_md_from_algo { /* {{{ */ EVP_MD *mdtype; switch  { case OPENSSL_ALGO_SHA1: mdtype = ; break; case OPENSSL_ALGO_MD5: mdtype = ; break; case OPENSSL_ALGO_MD4: mdtype = ; break;#ifdef HAVE_OPENSSL_MD2_H case OPENSSL_ALGO_MD2: mdtype = ; break;#endif#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER) case OPENSSL_ALGO_DSS1: mdtype = ; break;#endif case OPENSSL_ALGO_SHA224: mdtype =  EVP_sha224(); break; case OPENSSL_ALGO_SHA256: mdtype =  EVP_sha256(); break; case OPENSSL_ALGO_SHA384: mdtype =  EVP_sha384(); break; case OPENSSL_ALGO_SHA512: mdtype =  EVP_sha512(); break; case OPENSSL_ALGO_RMD160: mdtype =  EVP_ripemd160(); break; default: return NULL; break; } return mdtype;}
  1. Number 对象
if (method == NULL || Z_TYPE_P { if  { signature_algo = Z_LVAL_P; } mdtype = php_openssl_get_evp_md_from_algo; } else if  == IS_STRING) { mdtype = EVP_get_digestbyname; } else { php_error_docref(NULL, E_WARNING, "Unknown signature algorithm."); RETURN_FALSE; }

1.2 构造函数

官方文档解释

返回顶部