问题标签 [mcrypt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 第二部分:如何让 Ruby AES-256-CBC 和 PHP MCRYPT_RIJNDAEL_128 一起玩得很好
这个问题是我上一个问题的延续,关于How to make Ruby AES-256-CBC and PHP MCRYPT_RIJNDAEL_128 play well together。我现在已经开始工作了,但我仍在努力转向另一个方向。PHP 生成的密码似乎包含提供的所有信息,但我无法获得 Ruby 代码来解密它而不会出错。
这是我用来生成密码的 PHP 代码:
然后这是在 Ruby 中解密的尝试:
真正令人沮丧的是,有可能从该加密字符串中获取整个明文。重复上述步骤,但在密码中添加一个无意义的填充:
在我的实际用例中,明文是结构化的(一个 JSON 字符串,因为你问了),所以我感觉很舒服,我可以告诉使用这个方案并检测加密不佳的输入而不执行cipher.final
. 但是,我不能容忍我的代码中出现这种混乱,所以我想了解如何让 ruby 代码优雅地处理最后一个块。
php - mcrypt 2 路加密问题与 base64 编码和序列化
更新(解决方案)
由于这篇文章似乎得到了相当多的关注,我想让您知道解决方案最终是enctype
在声明中提供适当的(内容类型)参数<FORM>
。您必须将该值设置为multipart/form-data
以防止使用默认编码类型进行编码application/x-www-form-urlencoded
。下面是 w3.org上 HTML 文档中的表单的一小段摘录:
内容类型“application/x-www-form-urlencoded”对于发送大量二进制数据或包含非 ASCII 字符的文本效率低下。内容类型“multipart/form-data”应用于提交包含文件、非 ASCII 数据和二进制数据的表单。
这是正确的 FORM 声明:
最初的问题
我正在研究一个表单垃圾邮件保护类,它基本上使用 mcrypt 将表单字段名称替换为加密值。这样做的问题是 mcrypt 加密不仅限于会使表单字段无效的字母数字字符。 鉴于下面的代码,您能想到为什么我在解密已经加密的数组的值时遇到问题的任何原因吗?
我稍后使用以下方法调用设置隐藏表单元素的值:
本质上,隐藏字段包含所有表单字段的数组,这些字段使用其加密值进行加密。这样我就知道哪些字段需要在后端解密。提交表单后,该字段将在后端使用以下代码进行解析:
我尝试解密加密的表单字段密钥失败了。它只是在$_POST
数组中创建一个新的乱码键。我的猜测是,要么base64_encoding
或serialization
正在从$encrypted_data
. 有人可以验证这是否是罪魁祸首以及是否有任何替代方法来编码表单键?
php - PHPMyAdmin 抱怨“mcrypt”不可用——我很烦恼吗?
我在 Mac 上设置了 PHPMyAdmin,它抱怨它无法加载“mcrypt”函数。显然,Mac 上的 PHP 库存安装没有它。
谁能告诉我有什么影响?PHPMyAdmin 文档或 PHP 文档似乎都没有告诉我什么样的问题,如果有的话,这会导致我。
顺便说一句,这只是一个本地的个人数据库。不是生产,永远不会。
php - PHP - mcrypt 对加密字符串使用什么编码?
使用 PHP 我正在尝试将 mcrypt 生成的密文转换为二进制文件,但是当我尝试将其转换回密文时,它没有正确转换回来,因此无法解密。我假设我的编码在某个地方搞砸了,但我不知道从哪里开始弄清楚。这是网站http://dev.hersha.me/str2bin.php的链接,这是我的代码。
有任何想法吗?
php - PHP crypt 和 salt - 请进一步说明
我昨天在这里,得到了一些非常好的答案。我把我得到的东西放在一起,我认为这是一个相当安全的算法。我在使用带有生成盐的 for 循环的河豚时遇到问题。
我正在使用 base64 字符和 for 循环来获取随机字符串。我想把这个生成的字符串作为盐插入到 crypt 函数中。
因为关于河豚的文档非常稀少,而且 PHP 文档甚至没有真正提到它,所以我在这里有点摸不着头脑。
真正奇怪的是,如果你以现在的方式运行这段代码,它不会失败。从 for 循环上方或crypt 函数中删除“$2a$07$”,它将间歇性地返回一个加密字符串。我对河豚的理解是加密的字符串必须以 '$2a$07$' 开头并以 "$' 结尾,因此 crypt 函数中的连接。我真的不需要 for 循环上方的开始字符串,只是想得到摆脱它。
我还想澄清存储随机盐的最佳实践,无论是在数据库中还是通过将 crypt 函数的输出存储在数据库中?
昨天,没有真正的代码被抛出,只是讨论。今天我想把一些代码放在一起,并有一些相当安全的东西。如果有人能提出更好的算法,我总是很开放。
php - 将 AES 加密与 PHP 一起使用时,应将密钥存储在哪里?
我正在我的网络应用程序中实现 AES-256 位加密:
http://www.utoxin.name/2009/07/automatic-db-field-encryption-in-cakephp/
其中一个步骤是将使用的密码和密钥存储在 boostrap 文件中。但是是什么阻止某人使用 PS 或其他东西扫描文件系统并解密数据呢?
保护数据的最佳方法是什么?
php - 使用 Mcrypt 加密/解密文件
尝试编写几个将加密或解密文件的函数,并使用此处找到的类来尝试完成此操作:
http://www.itnewb.com/v/PHP-Encryption-Decryption-Using-the-MCrypt-Library-libmcrypt
下面的加密功能似乎有效,因为它似乎加密了文件并将其放置在预期的目录中。我现在正在尝试解密文件,它只是因为消息“无法完成解密”而死掉(其中编码...)php错误日志中没有任何内容,所以我不确定它为什么会失败,但由于 mcrypt 对我来说是全新的,我更倾向于相信我在这里做错了什么......
以下是功能:
php - PHP mcrypt 使用类?
我对此很陌生。当我认为一个好的教程会做得更好时,试图理解 PHP.net 上的 mcrypt 手册页。所以我搜索了但没有任何实质性的东西。
我还尝试了使用 mcrypt 使用 2 个函数执行加密和解密的示例之一,但它给出了“此算法的密钥大小太大”的警告。
谁能给我写一个双向类来使用 mcrypt 进行加密/解密,这样我就可以理解这个库了吗?谢谢!
aes - rijndael-128 的 Mcrypt:如何设置初始化向量?
我想通过 mcrypt 命令行工具使用 AES (rijndael 128) 加密文件。我想将初始化向量设置为特定值。我怎样才能做到这一点?
顺便说一句,我对加密很陌生。
谢谢!