php怎么对称加密解密_用PHP内置函数实现对称加密解密实战教程【技巧】

看不見的法師
发布: 2025-12-19 21:45:17
原创
208人浏览过
使用PHP实现对称加密可采用三种方法:1、推荐使用openssl_encrypt和openssl_decrypt配合AES-256-CBC算法,生成32字节密钥和16字节IV,加密后用base64_encode编码,解密时逆向操作;2、旧系统中可能使用mcrypt扩展进行DES加密,需启用mcrypt_module_open、mcrypt_generic_init等函数并手动处理PKCS#7填充;3、现代应用应优先选用Sodium库,通过sodium_crypto_secretbox和sodium_crypto_secretbox_open实现,需生成32字节密钥和唯一24字节nonce以确保安全。

php怎么对称加密解密_用php内置函数实现对称加密解密实战教程【技巧】

如果您需要在PHP中实现数据的加密与解密,并确保只有持有密钥的一方能够还原原始信息,可以使用PHP内置的对称加密函数。以下是几种利用PHP内置功能完成对称加密解密的操作方法:

一、使用 openssl_encrypt 和 openssl_decrypt 进行 AES 加密解密

openssl_encrypt 和 openssl_decrypt 是 PHP 中最常用的对称加密函数,支持多种加密算法,如 AES-128-CBC、AES-256-CBC 等。该方式安全性高,适用于大多数业务场景。

1、选择一个安全的加密方法,例如 AES-256-CBC,并生成一个32字节长度的密钥和16字节的初始化向量(IV)。

2、调用 openssl_encrypt 函数对明文进行加密,传入参数包括明文、加密方法、密钥、以及通过 OPENSSL_RAW_DATA 选项返回原始数据。

立即学习PHP免费学习笔记(深入)”;

3、将加密结果使用 base64_encode 编码为可传输的字符串格式。

4、解密时先用 base64_decode 解码密文,再调用 openssl_decrypt,传入相同的方法、密钥和 IV 即可还原原文。

二、使用 mcrypt 扩展实现 DES 加密(已废弃但仍有兼容需求)

尽管 mcrypt 扩展在 PHP 7.2 后已被移除,但在一些旧系统中仍可能遇到。若环境支持,可通过此方式实现简单的 DES 对称加密。

1、确认服务器已安装并启用 mcrypt 扩展,否则无法使用相关函数。

2、使用 mcrypt_module_open 初始化 DES 算法模块,指定加密模式如 CBC。

Chatbase
Chatbase

从你的知识库中构建一个AI聊天机器人

Chatbase 117
查看详情 Chatbase

3、调用 mcrypt_generic_init 初始化加密句柄,传入密钥和 IV。

4、执行 mcrypt_generic 加密数据,然后使用 mdecrypt_generic 进行解密操作。

5、注意:输出需手动处理填充(PKCS#7),且最终结果应进行编码以便存储或传输。

三、基于 Sodium 库的安全加密(推荐现代应用使用)

PHP 7.2+ 内置了 libsodium 扩展,提供现代加密标准,其中 symmetric encryption 可通过 secretbox 实现安全通信。

1、生成一个随机的 32 字节密钥,可使用 random_bytes(32) 创建。

2、使用 sodium_crypto_secretbox 函数加密数据,该函数要求传入明文、nonce(24字节随机数)和密钥。

3、加密前需确保 nonce 每次唯一,避免重放攻击。

4、解密时使用 sodium_crypto_secretbox_open,若验证失败会返回 false,成功则返回原始明文。

以上就是php怎么对称加密解密_用PHP内置函数实现对称加密解密实战教程【技巧】的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号