问题标签 [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 - mcrypt和openssl之间的PHP区别?
为什么这两种在 ecb-mode 中使用河豚的方法有不同的输出?
php - AES中输入和密文长度之间的关系
最近开始在我的应用程序中使用密码学,我发现自己对输入文本长度和它产生的密文之间的关系感到困惑。在应用密码学之前,很容易确定数据库列的大小。但是,现在列大小略有不同。
两个问题:
- 我是否正确假设这是由于我的输入的填充,所以它符合密码的要求?
- 有没有办法根据输入的最大长度准确预测密文的最大长度?
对于奖励积分:我应该将密文 base64 编码存储在 varchar 中,还是将其保留为原始字节并将它们存储在 varbinary 中?在我的数据库中存储字节是否存在风险(我正在使用参数化查询,所以理论上意外破坏转义应该不是问题)?
蒂亚!
补充:我使用的密码是 AES/Rijndael-256 - 这种关系在可用算法之间是否有所不同?
c# - 我的 C# 和 PHP 解密方法有何不同?
我继承了一些 C# 代码,需要将其移植到 PHP。这里是:
我的 PHP 代码如下所示:
但是两个解密后的值不一样,我不知道为什么。我在这里和其他地方读过很多类似的问题,但似乎没有一个能解释我遇到的问题。
我真的很感激任何帮助弄清楚为什么解密的 PHP 字符串与解密的 C# 字符串不匹配。
php - Mac 雪豹 Mcrypt 扩展
我正在运行 Mac OS X Snow Leopard 10.6。尝试进入 phpMyAdmin 时,出现以下错误:
“无法加载 mcrypt 扩展。请检查您的 PHP 配置。”
有谁知道如何解决这一问题?我不是非常技术性,所以欢迎简单的解释!
干杯,马克。
encryption - 用 PHP 加密和用 Java 解密
我必须编写一个程序来使用 JAVA 解密消息。消息使用 PHP 中实现的 Triple DES / ECB 进行加密。我在算法、模式和填充模式上尝试了一些不同的设置。我没有得到正确的结果。什么不见了?
这是加密消息的 PHP 程序:
下面是解密消息的java程序:(我使用的是BouncyCastleProvider)
php - 将 Crypto++ AES 加密移植到 PHP 的 mcrypt 时密钥大小不正确
早些时候我设法将一些 C++ CryptoPP Rijndael_128 CBC 代码移植到 MCrypt PHP,但现在我遇到了 CFB 模式的问题。C++ 和 PHP 结果不匹配(好吧,第一个字节匹配,但这可能是巧合,其他一切都不匹配)。通过一些诊断,看起来 PHP 的 mcrypt 没有正确设置密钥长度?
这是 C++(为简单起见,删除了诊断和杂项):
这是PHP:
g_encrypt_key
并且g_encrypt_iv
都是 16 字节长,并且字节匹配 C++ 和 PHP 版本。对于 PHP 版本,它是由字节构造的二进制字符串(是的,我已经检查过它们是相同的)。
我添加了对 PHP 版本的调用来检查$cipher
的块大小、密钥大小等。块大小和 iv 大小都是 16;支持的密钥大小报告为 16、24 和 32 - 都符合预期。
我认为问题出在哪里,密钥大小被报告为 32 字节。查看 mcrypt 文档,设置密钥大小的唯一方法是提供所需大小的密钥。但我传递了一个 16 字节的密钥!那么为什么它报告存在一个 32 字节的密钥呢?如果 CFB 模式必须使用 32 字节的密钥,那么 CryptoPP 为什么会接受它呢?解决办法是什么?我可以强制 PHP 使用已提供的 16 字节密钥吗?还是我缺少一个参数,它在 CryptoPP 中的默认设置与在 MCrypt 中的设置不同?
I am using the CFB mode because I want to minimize the length of the resulting encrypted data. The few bytes that padding would introduce, do matter in this application.
I need to be able to encrypt/decrypt in C++ but only encrypt in PHP. AES is arguably overkill for my application - the minimum I need is "a good scrambling of the bytes" so that the function of individual bytes in the data are not obvious.
php - 使用 PHP 和 Flex 加密然后解密 SWF 文件
有人会为我提供最简单的形式,使用 PHP 使用 mcrypt“say .swf”加密文件,然后在我的 flex 应用程序中解密它?
先感谢您。
ps: 文件将通过 read_file($file) 提供给 Flex 应用程序;功能。
拉米
php - openSSL 加密是否足够?
我将敏感信息存储在数据库中,该数据库经过以下过程:
- 用户通过网络表单输入信息。
- 输入的信息使用 256 位 AES 加密,并使用每个用户的唯一 ID 进行加盐处理(尽管它存储在同一个数据库中,有时存储在同一个表中)。
- 然后通过 openssl_pub_encrypt 函数解析加密的 pass 1 数据
- 数据存储在 mysql 数据库中,字段类型为:varbinary
解密数据:
- 私钥存储在服务器之外,每次需要检索数据时都必须上传到临时文件中
- 代码通过 openssl_private_decrypt 运行
- 该代码通过使用相同的盐和 AES-256 脚本进行解密来运行。
我想知道的是在这种情况下通过 AES-256 位运行信息甚至是值得的(因为密钥处于脱机状态,并且如果数据被泄露,盐已经存储在表中)?
php - PHP mcrypt 函数的问题
我使用以下函数解密服务器上的数据:
但是,我已经阅读了很多关于不使用 ECB 的内容(并且知道它已被弃用,因此想切换到 CBC。只需将模式切换为:
但是不起作用。不会产生错误,但返回的数据仍然是加密的。
我错过了什么?
更新的代码 - 仍然有错误:
这应该工作 - 但它返回错误:
块大小
blocksize in> 警告:mcrypt_encrypt()
[function.mcrypt-encrypt]:IV参数必须和blocksize inblocksize一样长
块大小
php - 加密和解密后字符串不再相等
我使用以下类来加密和解密字符串。创建两个相同的字符串后,我对其中一个字符串进行加密,然后对其进行解密。但是,解密后的字符串不再等于其孪生字符串(即使它们在转换后的文本形式中看起来相同)。此外,在使用加密解密的字符串及其孪生并将它们转换为十六进制使用 bin2hex 之后,我发现它们看起来相似,只是之前加密的字符串末尾的加法数为零。
有人可以指出我做错了什么吗?先感谢您。
类 proCrypt {
} // 类结束