PHP提供了多种加密和解密的函数和算法,常用的有以下几种:
md5加密:使用md5函数进行加密,返回一个32位的字符串,无法解密。
$password = '123456';
$encrypted_password = md5($password);
sha1加密:使用sha1函数进行加密,返回一个40位的字符串,无法解密。
$password = '123456';
$encrypted_password = sha1($password);
base64加密和解密:使用base64_encode函数进行加密,使用base64_decode函数进行解密。
$data = 'Hello World';
$encrypted_data = base64_encode($data);
$decrypted_data = base64_decode($encrypted_data);
对称加密和解密:使用openssl_encrypt函数进行加密,使用openssl_decrypt函数进行解密。需要提供一个密钥和一个初始化向量(IV)。
$data = 'Hello World';
$key = 'mykey';
$iv = '1234567890123456';
$encrypted_data = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
$decrypted_data = openssl_decrypt($encrypted_data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
非对称加密和解密:使用openssl_public_encrypt函数进行加密,使用openssl_private_decrypt函数进行解密。需要提供一个公钥和一个私钥。
$data = 'Hello World';
$public_key = openssl_pkey_get_public(file_get_contents('public.pem'));
$private_key = openssl_pkey_get_private(file_get_contents('private.pem'));
openssl_public_encrypt($data, $encrypted_data, $public_key);
openssl_private_decrypt($encrypted_data, $decrypted_data, $private_key);
需要注意的是,对称加密和非对称加密的密钥和初始化向量需要妥善保管,避免被泄露。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站