PHP 中有很多加密和解密的函数可用,以下是一些常用的加密解密方式和函数:
对称加密:
对称加密是一种加密方式,使用同一个密钥加密和解密数据。PHP 中可用的对称加密算法包括 AES、DES、3DES 等。以下是一些常用的对称加密函数:
mcrypt_encrypt():加密数据
mcrypt_decrypt():解密数据
openssl_encrypt():加密数据
openssl_decrypt():解密数据
非对称加密:
非对称加密使用一对公钥和私钥来加密和解密数据,其中公钥可以公开,而私钥必须保密。PHP 中可用的非对称加密算法包括 RSA、DSA、ECDSA 等。以下是一些常用的非对称加密函数:
openssl_public_encrypt():使用公钥加密数据
openssl_private_decrypt():使用私钥解密数据
openssl_private_encrypt():使用私钥加密数据
openssl_public_decrypt():使用公钥解密数据
Hash:
Hash 是一种单向加密方式,即不能通过已经加密的数据来还原出原始数据。PHP 中可用的 Hash 函数包括 MD5、SHA-1、SHA-256 等。以下是一些常用的 Hash 函数:
md5():计算 MD5 哈希值
sha1():计算 SHA-1 哈希值
hash():计算任意哈希值
Base64:
Base64 是一种编码方式,将二进制数据转换为文本格式,常用于在网络传输中传递二进制数据。PHP 中可用的 Base64 函数包括 base64_encode() 和 base64_decode()。
下面是一个简单的示例,使用 AES 对称加密算法加密和解密数据:
// 加密函数function encrypt($plaintext, $key) { $ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC"); $iv = openssl_random_pseudo_bytes($ivlen); $ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv); $hmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true); $ciphertext = base64_encode( $iv.$hmac.$ciphertext_raw ); return $ciphertext;}// 解密函数function decrypt($encrypted, $key) { $encrypted = base64_decode($encrypted); $iv = substr($encrypted, 0, 16); $encrypted = substr($encrypted, 16); $decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv); return $decrypted;}
来源地址:https://blog.csdn.net/u010986241/article/details/129171212