PHP OpenSSL扩展 - 对称加密

随着mcrypt扩展的退役,PHP开发人员需要转向OpenSSL扩展进行加密操作。本文重点介绍了PHP OpenSSL扩展中的对称加密,包括openssl_encrypt()、openssl_decrypt()等函数的使用,并通过示例代码展示了加密和解密过程。同时,强调了初始化向量(IV)的重要性,以及在使用CBC模式加密算法时,IV的随机生成和保存的规则。
摘要由CSDN通过智能技术生成

PHP 在进入7.x 时代后,默认就不再附带 mcrypt 扩展,mcrypt 将被 openssl_* 一族函数所替代。所以,对于 PHPer 来说,有必要学习一下 PHP 的 OpenSSL 扩展。

本文就先从 OpenSSL 扩展中的对称加密说起。后面会陆续更多非对称加密、数字签名、数字证书等函数的讲解。

PHP 的 OpenSSL 扩展中,对称加密的相关函数有:

  • openssl_encrypt()
  • openssl_decrypt()
  • openssl_random_pseudo_bytes()
  • openssl_get_cipher_methods()
  • openssl_cipher_iv_length()

光看PHP的官方文档还有点难理解。上一段代码,更清楚地看下这些函数怎么完成加密的:

// 加密算法
 $encryptMethod = 'aes-256-cbc';
// 明文数据
 $data = 'Hello World';

// 生成IV
 $ivLength = openssl_cipher_iv_length($encryptMethod);
 $iv = openssl_random_pseudo_bytes($ivLength, $isStrong);
 if (false === $iv && false === $isStrong) {
     die('IV generate failed');
 }

// 加密
 $encrypted = openssl_encrypt($data, $encryptMethod, 'secret', 0, $iv);
// 解密
 $decrypted = openssl_decrypt($encrypted, $encryptMethod, 'secret', 0, $iv);

详细解释一下:

第 1 行 指定了加密算法。比如这段代码使用 aes-256-cbc 算法加密。其实PHP的OpenSSL扩展支持很多种加密算法,想知道所有对称加密算法名称列表,可以调用 openssl_get_cipher_methods() 函数,这会返回一个数组:

array(
  0 => 'AES-128-CBC',
  1 => 'A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值