当前位置: 首页 > 知识库问答 >
问题:

如何用OpenSSL解密以前用mcrypt加密的字符串?

宦兴朝
2023-03-14
$encoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, 'salt', 'source string', MCRYPT_MODE_ECB));
$source = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, 'salt', base64_decode('encoded string'), MCRYPT_MODE_ECB);

或者唯一的方法是运行一个脚本,它将用mcrypt解密我存储的所有加密数据,并用openssl编码?

谢谢

共有1个答案

景才英
2023-03-14

OpenSSL没有Rijndael-256密码;没有等价物--你必须对所有东西进行解密和重新加密。

而且还:

  • 缺少填充和身份验证。
  • 不使用ECB模式。
  • “salt”不是正确的加密密钥,任何常规字符串也不是。使用random_bytes()生成密钥,使用所选算法的正确密钥长度。
 类似资料:
  • 我正在使用以下函数通过Qt中的OpenSSL库加密我的数据: “源”在“123456789012345678901234567890123456789012ABC”中。 “密码”为“1HA!DH==SJAH48S8AK!?SKIITFI120XX”。 所以...如果我正确的话,那么EVP_BytesToKey()应该从密码中生成一个密钥,并提供数据以在后面解密字符串。 对base64编码的密钥是:

  • 由于 mcrypt 被认为是过时的,我的任务是升级当前代码以使用 openssl。听起来很简单,但是...经过几天的尝试和失败,我觉得自己疯了。 我的问题是:有什么方法可以用以前用mcrypt加密的openssl数据解密吗?我读过很多关于这个问题的帖子,大多数帖子都说,在运行mcrypt之前,需要对数据进行手动填充。问题是,mcrypted数据已经加密(使用mcrypt提供的自动空填充),并驻留在

  • 我在解密使用OpenSSL加密的字符串时遇到了一些麻烦。我没有更改加密代码的权限,但我有读取权限: 加密代码(无法修改)

  • 在Java代码中,我应该解密一个加密的单词,如下所示: 我是加密新手,但是我发现了一些如何用Java加密/解密一些AES/CBC的示例。但是它需要盐、密钥和Iv。我发现OpenSsl正在从“密码”中导出这些值,但我没有发现如何Java解密加密值。 有人知道它是怎么工作的吗?盐、钥匙和/或Iv是否存储在加密值中?谢谢你的回答。

  • 问题内容: 下面的加密功能似乎起作用,因为它似乎可以加密文件并将其放置在预期的目录中。我现在正在尝试解密文件,并且它只死于消息“无法完成解密”(在此处进行编码…)。php错误日志中没有任何内容,因此我不确定为什么它会失败,但由于mcrypt对我来说是全新的,所以我更倾向于相信自己在这里做错了… 功能如下: 问题答案: 由于mcrypt是一种废弃软件,不再建议使用,因此这里是使用openssl的示例

  • 我的代码如下: 有人来帮我吗