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

<style>
textarea{width:88%;height:188px;}
</style><?php
// 定义要加密的数据
$data = '我是中文@This is a secret message@我就是中文';
echo "<p>打印原始未加密数据==>$data</p>";

$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 "<p>打印加密后的数据</p><textarea>$jiam</textarea>";

// 解密数据
$decrypted = openssl_decrypt(base64_decode($encrypted_data['encrypted']), $cipher, base64_decode($encrypted_data['key']), OPENSSL_RAW_DATA, base64_decode($encrypted_data['iv']));
echo "<p>打印解密后的数据==>$decrypted</p>";

?>

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):计数器模式,每个分组使用一个计数器和密钥生成密文。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YUJIANYUE

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值