当前位置:编程学习 > php >>

php 加解密函数 openssl_decrypt

<?php
$arr = ['a'=>1, 'b'=>2];
$data = json_encode($arr);//加密明文
$method = 'DES-ECB';//加密方法   DES-EDE3-CBC   DES-ECB,DES-CBC,DES-CTR,DES-OFB,DES-CFB

$passwd = '12344321';//加密密钥
$options = 0;//数据格式选项(可选)
$iv = '';//加密初始化向量(可选)

$result = openssl_encrypt($data, $method, $passwd, $options,$iv);
var_dump($result);

$res = openssl_decrypt($result, $method, $passwd, $options,$iv);
var_dump($res);
var_dump(json_decode($res, true));
 
结果
string(24) "GJv+LHgxK4NZzNFcjfJPhg=="
string(13) "{"a":1,"b":2}"
array(2) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
}





openssl_encrypt

# 以指定的方式和 key 加密数据,返回原始或 base64 编码后的字符串
openssl_encrypt(
    string $data,
    string $cipher_algo,
    string $passphrase,
    int $options = 0,
    string $iv = "",
    string &$tag = null,
    string $aad = "",
    int $tag_length = 16
): string|false


data
待加密的明文信息数据。

cipher_algo
密码学方式。openssl_get_cipher_methods() 可获取有效密码方式列表。

passphrase
口令(passphrase)。 若 passphrase 比预期长度短,将静默用 NUL 填充; 若比预期长度更长,将静默截断。

options
options 是以下标记的按位或: OPENSSL_RAW_DATA 、 OPENSSL_ZERO_PADDING。

iv
非 NULL 的初始化向量。

tag
使用 AEAD 密码模式(GCM 或 CCM)时传引用的验证标签。

aad
附加的验证数据。

tag_length
验证 tag 的长度。GCM 模式时,它的范围是 4 到 16。
 
openssl_decrypt

# 采用原始或base64编码的字符串,并使用给定的方法和密钥对其进行解密
openssl_decrypt(
    string $data,
    string $method,
    string $key,
    int $options = 0,
    string $iv = "",
    string $tag = "",
    string $aad = ""
): string

data
将被解密的密文。

method
加密算法,使用openssl_get_cipher_methods()函数获取可用的加密算法列表。

key
密钥。

options
options can be one of OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv
非空的初始化向量。

tag
AEAD密码模式中的身份验证标签。 如果是错误的,验证失败,函数返回false.

aad
额外的认证数据。
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,