首頁 > 後端開發 > php教程 > 我可以在保持解密相容性的同時從 Mcrypt 遷移到 OpenSSL 加密嗎?

我可以在保持解密相容性的同時從 Mcrypt 遷移到 OpenSSL 加密嗎?

Mary-Kate Olsen
發布: 2024-12-30 19:12:13
原創
690 人瀏覽過

Can I Migrate from Mcrypt to OpenSSL Encryption While Maintaining Decryption Compatibility?

將我的加密庫從Mcrypt 升級到OpenSSL

問題:

是否可以將我的加密庫從Mcrypt 升級到OpenSSL並保留解密使用以下方法加密的資料的能力Mcrypt?

衝突資訊:

網路上似乎存在著關於這兩個函式庫之間相容性的衝突資訊。

  • 一個來源聲稱使用 OpenSSL 解密 Mcrypt 加密的資料是不可能的。
  • 另一個來源表明可以使用

其他上下文:

我正在嘗試將當前使用Mcrypt 的加密類轉換為使用OpenSSL的加密類。但是,我在解密使用 Mcrypt 版本加密的資料時遇到了困難。

解密工作代碼:

以下OpenSSL 版本中解密程式的修訂程式碼已確認有效:

public function decrypt($data, $key) {
    $salt = substr($data, 0, 128);
    $enc = substr($data, 128, -64);
    $mac = substr($data, -64);

    list ($cipherKey, $macKey, $iv) = $this->getKeys($salt, $key);

    if ($mac !== hash_hmac('sha512', $enc, $macKey, true)) {
        return false;
    }

    $dec = openssl_decrypt($enc, $this->cipher, $cipherKey, OPENSSL_RAW_DATA, $iv);

    return $dec;
}
登入後複製

測試結果:

使用各種資料和金鑰測試此修改後的程式碼沒有失敗。

結論:

可以升級加密庫從 Mcrypt 到 OpenSSL,並成功解密使用先前的庫加密的數據,前提是您使用更新的解密程式。

以上是我可以在保持解密相容性的同時從 Mcrypt 遷移到 OpenSSL 加密嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板