久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

MCrypt rijndael-128 到 OpenSSL aes-128-ecb 的轉換

MCrypt rijndael-128 to OpenSSL aes-128-ecb conversion(MCrypt rijndael-128 到 OpenSSL aes-128-ecb 的轉換)
本文介紹了MCrypt rijndael-128 到 OpenSSL aes-128-ecb 的轉換的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

由于 Mcrypt 已被棄用,我想在我的代碼中使用 OpenSSL,因為我們已經在我們的服務器中使用了 php 7.0.17 并且不知道他們何時升級它.

Since Mcrypt is deprecated, I want to use OpenSSL instead in my code since we already using php 7.0.17 in our server and there's no tell when they upgrade it.

某些第三方 API(可能托管在 PHP 5.x 上并使用 mcrypt)正在獲取加密數據.他們提供了用于加密/解密字符串的方法.

Some third party API (hosted on PHP 5.x probably and using mcrypt), is taking encrypted data. They've provided methods which they are using to encrypt/decrypt strings.

他們在這里

$secret = 'a0a7e7997b6d5fcd55f4b5c32611b87c' ;

public function encrypt128($str)
    {
        $block = mcrypt_get_block_size("rijndael_128", "ecb");
        $pad   = $block - (strlen($str) % $block);
        $str .= str_repeat(chr($pad), $pad);

        return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $secret, $str, MCRYPT_MODE_ECB));
    }

public function decrypt128($str)
    {
        $str = base64_decode($str);
        $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $secret, $str, MCRYPT_MODE_ECB);

        $len = strlen($str);
        $pad = ord($str[$len - 1]);

        return substr($str, 0, strlen($str) - $pad);
    }

使用這些方法字符串 small1 如果加密變成 v7IXp5vVaFVXXlt/MN8BVw==

using these methods string small1 if encrypted becomes v7IXp5vVaFVXXlt/MN8BVw==

我們想在我們這邊使用 openssl_encrypt 這樣如果我們用 OpenSSL 加密相同的字符串,它必須給出與 Mcrypt 相同的結果.我研究過使用 rijndael-128 模式 ecb 的 mcrypt 應該與 OpenSSL aes-128-ecb 兼容.

We want to use openssl_encrypt in our side such that if we encrypt same string with OpenSSL it must give same results as Mcrypt. I've researched that mcrypt using rijndael-128 Mode ecb should be compatible with OpenSSL aes-128-ecb.

在過去的幾個小時里,我一直在嘗試使用自己的方法來加密使用 OpenSSL 提供相同結果的字符串.到目前為止,我已經到了這個

For last few hours, I've been trying to make my own method to encrypt strings serving same result by using OpenSSL. So far I've come to this

public function sslEncrypt128($str)
{
    $secret = 'a0a7e7997b6d5fcd55f4b5c32611b87c';
    return base64_encode(openssl_encrypt($str, 'aes-128-ecb', $secret, OPENSSL_RAW_DATA));
}

但它產生不同的字符串 SxJ3+EdaeItZx3/EwGTUbw== 與上述輸入相同.不知道是flag的問題還是padding的問題,歡迎指點.

But it produces different string SxJ3+EdaeItZx3/EwGTUbw== for same as above input. I don't know if it is flag's problem or padding's, any pointers will be welcome.

我在此處添加了代碼以進行在線測試 https://3v4l.org/v2J2N

I've added the code here to test online https://3v4l.org/v2J2N

提前致謝.

推薦答案

在您的具體示例中,我發現通過將 aes-128-ecb 更改為 aes-256-ecb,它產生與傳統 mcrypt_encrypt 相同的輸出.

In your specific example I've found that by changing aes-128-ecb to aes-256-ecb, it produces the same output as the legacy mcrypt_encrypt.

這篇關于MCrypt rijndael-128 到 OpenSSL aes-128-ecb 的轉換的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Joining 2 tables in SELECT(MYSQL/PHP)(在 SELECT(MYSQL/PHP) 中加入 2 個表)
How to make lt;option selected=quot;selectedquot;gt; set by MySQL and PHP?(如何使lt;option selected=“selectedgt;由 MySQL 和 PHP 設置?)
Auto populate a select box using an array in PHP(使用 PHP 中的數組自動填充選擇框)
PHP SQL SELECT where like search item with multiple words(PHP SQL SELECT where like search item with multiple words)
json_encode produce JSON_ERROR_UTF8 from MSSQL-SELECT(json_encode 從 MSSQL-SELECT 產生 JSON_ERROR_UTF8)
MySQL ORDER BY rand(), name ASC(MySQL ORDER BY rand(),名稱 ASC)
主站蜘蛛池模板: 欧美精品二区 | 91福利网址 | 欧美成人a | 国产精品综合一区二区 | 国产三级日本三级 | 亚洲精品成人网 | 日韩在线免费视频 | 99热这里 | 国产午夜精品理论片a大结局 | 国产激情在线观看 | 久久婷婷国产香蕉 | 国产中文字幕亚洲 | 在线视频亚洲 | 久久精品在线免费视频 | 亚洲精品中文字幕 | 久久区二区 | 国产精品亚洲欧美日韩一区在线 | 91精品国产乱码久久久久久久久 | 久久亚洲天堂 | 欧美综合国产精品久久丁香 | 九九热国产视频 | 国产乱码精品一区二区三区五月婷 | 日日爱av| 国产9 9在线 | 中文 | 久久久久精 | 欧美激情久久久 | 日本成人免费网站 | 国产一区亚洲二区三区 | 在线观看国产视频 | 亚洲精品99 | 这里有精品 | 国产中文字幕网 | 特黄小视频 | 中文字幕第一页在线 | 日韩高清一区二区 | 91久久精品国产 | 韩日在线观看视频 | 国产69精品久久99不卡免费版 | 精品日韩一区二区 | 亚洲午夜av久久乱码 | 综合久久综合久久 |