【问题标题】:Decrypt rijndael-128 String with PHP openssl使用 PHP openssl 解密 rijndael-128 字符串
【发布时间】:2019-04-18 10:18:39
【问题描述】:

要将 mcrypt 替换为 openssl,我有以下任务:

加解密的实际代码是这样的

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,$plaintext, MCRYPT_MODE_CBC, $iv);

和

$result_decrypt  = mcrypt_decrypt(
            'rijndael-128',
            $key,
            $ciphertext,
            'cbc',
            $iv
        );

工作正常,一切都很好。现在想用openssl解密$ciphertext,我看MCrypt rijndael-128 to OpenSSL aes-128-ecb conversion试试

function decrypt_openssl_rijndael($value, $unserialize = true, $salt)
    {

        if (!extension_loaded('openssl')) {
            throw new \RuntimeException(
                'SSL extension is not available.'
            );
        }

        $decrypted = openssl_decrypt($value, 'aes-128-ecb', $salt, OPENSSL_RAW_DATA );

        if ($unserialize) {
            return unserialize($decrypted);
        } else {
            return $decrypted;
        }
    }

我测试了几个选项,但没有得到正确解密的字符串。我想我只是错过了一件小事,所以如果有人有想法?

问候 托马斯

【问题讨论】:

  • 这里有一些有趣的东西。使用aes-256-ecb 而不是 128。块大小是一回事。
  • NNNNNOOOOOOO!!!!!!!!!更长的密钥更难通过暴力破解,但 AES128 已经需要即使是 SciFi 也无法想象暴力破解的能量和计算资源。 OTOH,还有其他方法可以破解密码学。在 AES 的情况下,较长的块/密钥比较短的块/密钥更容易受到当前已知的攻击:schneier.com/blog/archives/2009/07/another_new_aes.html
  • 嗨stackoverflow.com/users/4729332/andrei我有testet这个选项,但没有成功。

标签: php mcrypt


【解决方案1】:

这应该是一个评论 - 但它有点长。

您正在处理一个非常具体的问题 - 为了解决一些更大的问题。通常,在 StackOverflow 上欢迎与此一样具体的问题,但是这样做的结果是该方法通常隐藏了解决更大问题的更好方法。这看起来像是其中之一。

首先,OpenSSL applies some transformations 提供的密钥用于加密和解密操作,以使其更难破解加密。这在加密工具中很常见。 mcrypt 可能确实(确实)类似,尽管我怀疑它可能没有。因此,您可以使用相同的密钥和相同的算法,但得到不同的结果。您链接到的帖子说它适用于 256 位块。我很怀疑,你似乎也发现了。

除非数据已加密,否则您不会想要解密数据。加密的地点和方式大概与 mcrypt 兼容。您需要问的一个非常重要的问题是您的 post-mcrypt 实现是否还需要与加密器兼容/密文是否可以迁移/加密器是否可以更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 2022-11-25
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多