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

絕刀狂花
发布: 2025-12-21 20:59:28
原创
635人浏览过
答案:PHP中可通过OpenSSL、Sodium和兼容Mcrypt的OpenSSL实现敏感数据加解密。1、OpenSSL使用AES-256-CBC算法,需生成32字节密钥和随机IV,加密用openssl_encrypt(),解密用openssl_decrypt(),IV需唯一且与密文一同存储。2、Sodium推荐用于新项目,使用sodium_crypto_secretbox_keygen()生成密钥,sodium_crypto_secretbox()加密并自动处理nonce,解密用sodium_crypto_secretbox_open(),确保每次加密使用不同nonce。3、为兼容Mcrypt,需将Rijndael-128等算法映射到OpenSSL,调整填充方式并使用OPENSSL_RAW_DATA选项,手动处理PKCS#7填充以还原原始数据长度。

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

如果您需要在PHP中对敏感数据进行保护,可以通过加密和解密操作确保信息在传输或存储过程中的安全性。以下是使用PHP内置函数实现加解密的详细步骤:

一、使用OpenSSL扩展进行对称加密解密

OpenSSL是PHP中广泛使用的加密扩展,支持多种加密算法,如AES-256-CBC,适合对数据进行安全的对称加解密处理。该方法要求加密与解密使用相同的密钥。

1、生成一个安全的加密密钥,建议使用32字节长度以匹配AES-256算法。密钥必须严格保密且不可泄露

2、使用openssl_encrypt()函数对明文数据进行加密,指定算法为AES-256-CBC,并生成随机的初始化向量(IV)。

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

3、将加密后的数据(二进制或Base64编码)与IV一同存储或传输,IV不需要保密但必须唯一且不可重复

4、解密时使用openssl_decrypt()函数,传入密文、算法、密钥以及之前保存的IV,还原原始数据。

二、使用Sodium扩展实现现代加密

Sodium是PHP 7.2+内置的安全加密库,提供了更高级别的抽象接口,推荐用于新项目中的加密需求。其默认使用XChaCha20-Poly1305等认证加密算法。

1、调用sodium_crypto_secretbox_keygen()生成一个256位的密钥用于加密。

音疯
音疯

音疯是昆仑万维推出的一个AI音乐创作平台,每日可以免费生成6首歌曲。

音疯 178
查看详情 音疯

2、使用sodium_crypto_secretbox()函数加密数据,该函数会自动处理nonce(类似IV),需确保每次加密使用不同的nonce值。

3、将加密结果和nonce一起保存,nonce长度为24字节,必须与密文配套使用

4、解密时使用sodium_crypto_secretbox_open()函数,传入密文、nonce和密钥,验证并解密数据。

三、使用Mcrypt替代方案进行兼容性处理

由于Mcrypt扩展已在PHP 7.2以后被废弃,若需在旧系统迁移过程中保持兼容,可采用其他方式模拟其行为。建议仅在维护遗留系统时使用此方法。

1、确认原Mcrypt使用的算法(如Rijndael-128)和模式(如CBC),并找到OpenSSL中的对应实现。

2、调整填充方式,Mcrypt不自动填充,而OpenSSL默认PKCS#7填充,需手动截断多余字节以还原原始数据长度。

3、使用openssl_encrypt()配合OPENSSL_RAW_DATA选项输出原始数据格式,使其与Mcrypt输出一致。

4、解密时同样设置相同参数,并验证解密后数据是否正确还原。

以上就是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号