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

解密 rijndael-128 字符串与 PHP 开放

牟辰龙
2023-03-14

要用开放sl替换mcrypt,我有以下任务:

加密和解密的实际代码类似于

$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
        );

工作正常,一切都很好。现在我想用开放激光解密$ciphertext,我看看MCrypt里金代尔-128到开放SSL的aes-128-ecb转换并尝试

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;
        }
    }

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

问候托马斯

共有1个答案

邵博艺
2023-03-14

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

你正在处理一个非常具体的问题——为了解决一些更大的问题。通常情况下,StackOverflow上欢迎如此具体的问题,但其结果是,这种方法往往隐藏了解决更大问题的更好方法。这看起来像其中之一。

首先,OpenSSL对加密和解密操作提供的密钥应用一些转换,以使破解加密更加困难。这在加密工具中很常见。mcrypt可能也做了类似的事情,尽管我怀疑它可能没有。所以你可以使用相同的密钥和相同的算法,但得到不同的结果。你链接到的帖子说它可以使用256位块。我很可疑,你似乎也发现了同样的情况。

除非数据已经加密,否则您不会想要解密数据。加密的地点和方式可能与mcrypt兼容。你需要问的一个真正重要的问题是,你的后mcrypt实现是否也需要与加密器兼容/密文是否可以迁移/加密器是否可以改变。

 类似资料:
  • 尝试将数据解密为用AES-128加密的字节数组,使用字符串密钥"keykeykeykey1" 代码: 给我BadPaddingExc0019。我错过了什么?

  • 本文向大家介绍php加密解密字符串示例,包括了php加密解密字符串示例的使用技巧和注意事项,需要的朋友参考一下 收录了一些比较经典的PHP加密解密函数代码,分享给大家。加密解密原理一般都是通过一定的加密解密算法,将密钥加入到算法中,最终得到加密解密结果。     希望本文所述对大家PHP程序设计有所帮助。

  • 本文向大家介绍PHP加密解密字符串汇总,包括了PHP加密解密字符串汇总的使用技巧和注意事项,需要的朋友参考一下 项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理。 最常见的应用在用户登录以及一些API数据交换的场景。 笔者收录了一些比较经典的PHP加密解密函数代码,分享给大家。加密解密

  • 本文向大家介绍PHP解密Unicode及Escape加密字符串,包括了PHP解密Unicode及Escape加密字符串的使用技巧和注意事项,需要的朋友参考一下 本文给大家分享一个PHP解密Unicode及Escape加密字符串函数 在网上搜索一把,很多用php实现的escape函数,大同小异 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 问题内容: 我的意思是: 也许像: 在PHP中,您该怎么做? 尝试使用 ,但对我不起作用。 问题答案: 更新 PHP 7就绪版本。它使用PHP OpenSSL库中的openssl_encrypt函数。

  • 我的意思是: 可能是这样的: null 尝试使用,但对我不起作用。