我们使用 openssl_cipher_iv_length() 来获取当前算法需要的 iv 长度,然后使用 openssl_random_pseudo_bytes() 函数来生成一个随机的符合算法长度的 iv 内容。 中间那个 0 的参数是指定标记的按位或值,它有两个可选常量:OPENSSL_RAW_DATA 和 OPENSSL_ZERO_PADDING ,如果设置为
result =openssl_encrypt($data, $method, $passwd, OPENSSL_RAW_DATA); var_dump(openssl_decrypt($result, $method, $passwd,OPENSSL_RAW_DATA)); 结果: string(16)"1234567887654321" 我们可以看到:默认填充方式与OPENSSL_RAW_DATA,这两种方式加密结果是一样的 (3) OPENSSL_ZERO_PADDING方式 看字面意思,是用...
phpfunctionencrypt($data,$key,$iv){$cipher="AES-128-CBC";// 使用AES-128算法$options=OPENSSL_RAW_DATA;// 原始数据格式// 使用openssl_encrypt函数进行加密$encrypted=openssl_encrypt($data,$cipher,$key,$options,$iv);// 返回加密后的数据returnbase64_encode($encrypted);}$data="Hello, World!";...
OPENSSL_RAW_DATA=1 OPENSSL_ZERO_PADDING=2 OPENSSL_NO_PADDING=3 $iv 密初始化向量(可选) 注:数据格式为 OPENSSL_RAW_DATA 或 OPENSSL_NO_PADDING 时,加密结果会有乱码,需要使用base64_encode编码 解密方法: stringopenssl_decrypt(string $data , string $method , string $password[, $options, $iv]) ...
1:OPENSSL_RAW_DATA,自动进行 pkcs7 补位, 但是不自动进行 base64 编码 2:OPENSSL_ZERO_PADDING,需要自己进行 pkcs7 补位,同时自动进行 base64 编码 3. 通过mcrypt实现 3.1 安装mcrypt扩展 需要安装php扩展mcrypt,具体方法就不提供了,php的扩展的安装方式都一样,php7.1以下的版本支持mcrypt模块。
我们使用 openssl_cipher_iv_length() 来获取当前算法需要的 iv 长度,然后使用 openssl_random_pseudo_bytes() 函数来生成一个随机的符合算法长度的 iv 内容。 中间那个 0 的参数是指定标记的按位或值,它有两个可选常量:OPENSSL_RAW_DATA 和 OPENSSL_ZERO_PADDING ,如果设置为 OPENSSL_RAW_DATA 加密后的数据...
中间那个 0 的参数是指定标记的按位或值,它有两个可选常量:OPENSSL_RAW_DATA 和 OPENSSL_ZERO_PADDING ,如果设置为 OPENSSL_RAW_DATA 加密后的数据将按照原样返回(二进制乱码内容),如果设置为 OPENSSL_ZERO_PADDING ,加密后的数据将返回为 base64 之后的内容。
OPENSSL_RAW_DATA=1 OPENSSL_ZERO_PADDING=2 OPENSSL_NO_PADDING=3 $iv 密初始化向量(可选) 需要注意:如果method为DES-ECB,则method为DES−ECB,则iv无需填写 二、解密用到的方法: openssl_decrypt($data, $method, $password, $options, $iv)
1.$data:加密明文 2.$method:加密方法: 可以通过openssl_get_cipher_methods()获取有效密码方式列表 3.$passwd:加密密钥[密码] 4.$options:数据格式选项(可选)【选项有:】:0,OPENSSL_RAW_DATA=1,OPENSSL_ZERO_PADDING=2,OPENSSL_NO_PADDING=3;它有着很重要的作用: ...
openssl_encrypt($data,$method,$password,$options,$iv) 参数说明: $data 加密明文 $method 加密方法 DES-ECB DES-CBC DES-CTR DES-OFB DES-CFB $passwd 加密密钥[密码] $options 数据格式选项(可选)【选项有:】 0 OPENSSL_RAW_DATA=1 OPENSSL_ZERO_PADDING=2 ...