San*_*der 5 php encryption file aes php-openssl
我正在尝试使用 AES 加密 PHP 中的(大)文件并研究使用 Mcrypt 和 OpenSSL,问题是到目前为止我发现的所有解决方案都只加密字符串,而我尝试加密的文件会触发最大值PHP 的内存限制(不幸的是不能设置得更高),我将如何实现这一目标?
您可以使用 Mcrypt 进行 CBC 加密,然后一次加密一段数据。确保该段是所用密码块大小的 x 倍(例如 AES 为 16 字节)。加密该段并获取生成的密文的最后一个块并将其用作下一个段的 IV。最后一段应该用 PKCS#7 填充(有很多例子,包括mcrypt_encrypt评论中)。
通过将这些段链接在一起,您将获得与单个加密无法区分的密文(使用此信息测试您的代码)。解密是相同的,使用密文作为 IV。要了解其工作原理,请查看 CBC 加密方法:

编辑:如果可能,您应该使用 OpenSSL 等效功能。这没有(很好)记录,但您应该能够使用Scott 提到的评论中的链接中找到的代码来执行相同的操作。请注意,您应该首先执行不带 padding 的所有操作,然后使用padding执行最后一段。
| 归档时间: |
|
| 查看次数: |
7452 次 |
| 最近记录: |