php openssl支持的加密算法和加密模式及加密解密示范实例

打印原始未加密数据==>$data

"; $cipher = 'aes-128-cbc';// 定义加密算法和加密模式 $key = openssl_random_pseudo_bytes(128);//生成随机密钥 // 加密数据 $ivlen = openssl_cipher_iv_length($cipher); $iv = openssl_random_pseudo_bytes($ivlen); $encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv); $encrypted_data = array( 'encrypted' => base64_encode($encrypted), 'iv' => base64_encode($iv), 'key' => base64_encode($key) ); $jiam = json_encode($encrypted_data,JSON_PRETTY_PRINT); echo "

打印加密后的数据

"; // 解密数据 $decrypted = openssl_decrypt(base64_decode($encrypted_data['encrypted']), $cipher, base64_decode($encrypted_data['key']), OPENSSL_RAW_DATA, base64_decode($encrypted_data['iv'])); echo "

打印解密后的数据==>$decrypted

"; ?>

php openssl支持的加密算法和加密模式:
加密算法:
1. AES(Advanced Encryption Standard):128位、192位和256位;
2. Blowfish:128位;
3. CAST5:128位;
4. IDEA(International Data Encryption Algorithm):128位;
5. RC2(Rivest Cipher 2):128位;
6. RC4(Rivest Cipher 4):128位;
7. RC5(Rivest Cipher 5):128位;
8. SEED(KISA SEED):128位;
9. Triple DES(3DES):168位。
加密模式:
1. CBC(Cipher Block Chaining):分组加密模式,每个分组使用前一个分组的密文作为初始向量;
2. CFB(Cipher Feedback):反馈加密模式,每个分组使用前一个分组的密文作为“反馈”;
3. ECB(Electronic Code Book):电子密码本模式,每个分组独立加密;
4. OFB(Output Feedback):输出反馈加密模式,每个分组使用前一个分组的密文作为“输出反馈”;
5. GCM(Galois/Counter Mode):通过在CTR模式下增加Galois域上的多项式运算实现的加密模式;
6. CTR(Counter):计数器模式,每个分组使用一个计数器和密钥生成密文。

你可能感兴趣的:(php,html,开发语言)