AES加密解密

在编写代码过程中,总少不了加密解密,尤其是比较重要的数据需要多个端传递数据的时候,经过本人测试,在js、php、c++直接可以互相传递密文的方法就是aes,在php和js直接传递密文可能会出现解密失败的情况,需要调整 密钥值和偏移量值

PHP版代码

// ssl加密
function AES($data, $method = 'aes-128-cbc')
{
    // 公钥明文
    // $data = "特殊他";
    $data['time'] = time();
    $data = json_encode($data);
    
    // 偏移量
    $iv = 'GiiuC6iH!P#NRf1@';
    // 密钥
    $key = '*TIGGtg6VuYf!48@';
    
    // 加密
    $e = openssl_encrypt($data, $method, $key, 0, $iv);
    $data = [];
    // 对密文进行处理,兼容js解密
    $data['Ciphertext'] = $e;
    $data['Key'] = $key;
    // 明文
    $data['Cleartext'] = openssl_decrypt($e, $method, $key, 0, $iv);
    // 偏移量进行64对称加密
    $data['iv'] = $iv;
    return $data;
}

这里需要注意的是 偏移量和密钥的长度必须是16位以上的值,密码生成可以通过 随机密码生成器 生成

对密文的加密解密可以通过 在线AES加密解密 进行测试

效果如下:AES加密解密_第1张图片

 

你可能感兴趣的:(PHP基础,加密解密,密码学,openssl,安全,PHP)