gpt4 book ai didi

php - 128 位 PHP 数据加密和解密

转载 作者:行者123 更新时间:2023-12-04 05:16:25 26 4
gpt4 key购买 nike

我有一个客户要求存储在 MySQL 数据库中的所有数据都使用 128 位加密进行加密。

假设在将所有数据插入数据库之前,运行 PHP 函数对其进行加密。然后,当我从数据库中提取数据时,我运行一个解密函数来吐出原始文本/信息。

有人可以指出我正确的方向。我知道这些功能将使用共享/公共(public) key 来加密和解密,但是是什么使它成为 128 位? PHP中是否有执行此操作的预构建函数?

感谢任何建议。

斯科特

最佳答案

通常,“128 位加密”是指 symmetric encryption使用 128 位 key 。 AES -128 是加密算法的绝佳选择。

您还需要选择 mode of operation : 如果您只需要隐私,CBC、CFB、OFB 和 CTR 都是不错的选择,但如果您还想保护数据不被篡改,您应该使用 authenticated encryption模式如 EAX .不要使用 ECB 模式,除非您的所有记录都短于单个 AES block (也是 128 位),最好不要使用,即使它们是。

根据您选择的模式,您通常还需要为每条记录生成一个初始化向量 (IV),它应该是一个唯一且不可预测的随 secret 码 block (AES 为 128 位)。有很多方法可以生成一个,但是两个好的方法( recommended by NIST )要么使用 cryptographically secure pseudorandom number generator 的输出或在 ECB 模式下加密唯一 ID(这是可以使用的罕见情况之一)。根据您使用的加密库,它可能会为您解决这个问题。请注意,如果您曾经更改记录中的加密数据,您也应该始终更改 IV。

正如其他答案所指出的,mcrypt如果您使用 PHP,它是加密库的不错选择。

关于php - 128 位 PHP 数据加密和解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14207997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com