一、使用OpenSSL扩展进行对称加密:1. 确保OpenSSL启用;2. 选用AES-256-CBC算法;3. 生成16字节IV;4. 调用openssl_encrypt()并Base64编码输出密文;5. 解密时用openssl_decrypt()还原数据。二、使用Sodium库实现现代加密:1. 确认PHP≥7.2且Sodium可用;2. 使用sodium_crypto_secretbox()加密,提供明文、24字节唯一nonce和32字节密钥;3. 密钥由random_bytes(32)生成;4. 加密结果转Base64存储;5. 解密调用sodium_crypto_secretbox_open()恢复原文。三、利用哈希加盐保护密码:1. 注册时用password_hash()生成bcrypt哈希;2. 自动内置盐值;3. 存储60字符哈希串至数据库;4. 登录时用password_verify()比对输入密码与存储哈希;5. 函数自动提取盐并验证,返回布尔结果。

如果您需要在PHP中实现数据的安全传输或存储,可以通过内置函数对敏感信息进行加密和解密处理。以下是使用PHP内置函数完成加解密操作的具体流程:
OpenSSL 是 PHP 中最常用的加密扩展之一,支持多种加密算法如 AES-256-CBC,适用于字符串数据的加密与解密。该方法通过相同的密钥进行加密和解密,适合内部系统间安全通信。
1、确保服务器环境已启用 OpenSSL 扩展,可在 php.ini 中检查是否开启 openssl 扩展。
2、选择安全的加密方法,推荐使用 AES-256-CBC 模式,调用 openssl_encrypt() 函数执行加密。
立即学习“PHP免费学习笔记(深入)”;
3、生成一个随机的初始化向量(IV),长度需符合所选算法要求,例如 AES-256 需要 16 字节 IV。
4、将明文、加密方法、密钥、选项参数以及 IV 传入函数,并返回 Base64 编码后的密文以方便存储或传输。
5、解密时使用 openssl_decrypt() 函数,传入 Base64 解码后的密文、相同的方法、密钥、选项和原始 IV,恢复原始数据。
Sodium 是 PHP 7.2+ 内置的现代加密库,提供更高级别的安全性,基于 NaCl 实现,推荐用于新项目中的加密需求。其默认采用 XChaCha20-Poly1305 等认证加密算法。
1、确认 PHP 版本不低于 7.2 并且 Sodium 扩展已加载,通常默认集成无需额外安装。
2、调用 sodium_crypto_secretbox() 对数据进行加密,需提供明文、随机生成的 nonce 和共享密钥。
3、密钥应为 32 字节长,可通过 random_bytes(32) 安全生成;nonce 必须为 24 字节且每次加密唯一。
4、加密后结果为二进制数据,建议使用 Base64 编码保存或传输。
5、解密时使用 sodium_crypto_secretbox_open(),传入编码后的密文、nonce 和密钥,验证并还原原始内容。
对于用户密码等敏感信息,不应使用可逆加密,而应采用单向哈希算法结合加盐策略存储。PHP 提供了 password_hash() 和 password_verify() 函数来简化此过程。
1、在用户注册时,调用 password_hash() 函数对明文密码进行哈希处理,算法默认为 bcrypt。
2、该函数会自动生成安全盐值并嵌入输出字符串中,无需手动管理盐。
3、将生成的哈希字符串存入数据库字段,长度固定为 60 个字符。
4、登录验证时,使用 password_verify() 接收用户输入的密码和数据库中存储的哈希值进行比对。
5、函数内部自动提取盐并计算哈希,返回布尔值表示匹配状态,确保安全性与便捷性兼顾。
以上就是php加解密怎么做_用PHP内置函数实现加解密全流程教程【技巧】的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号