ホームページ > バックエンド開発 > PHPチュートリアル > コードを大幅に変更せずに Mcrypt から OpenSSL に移行するにはどうすればよいですか?

コードを大幅に変更せずに Mcrypt から OpenSSL に移行するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-22 05:30:14
オリジナル
419 人が閲覧しました

How to Migrate from Mcrypt to OpenSSL without Significant Code Changes?

大規模な再コーディングを行わずに Mcrypt から OpenSSL に移行する

背景:

現在、PHP アプリケーションはデータ暗号化に Mcrypt を使用しています。 Blowfish 暗号と ECB モード。ただし、暗号化のために OpenSSL に移行するという課題に直面します。

主な違い:

  • OpenSSL は PKCS#7 パディングを使用しますが、Mcrypt は PKCS#5 を使用します。
  • OpenSSL は、ECB モードとは異なり、初期化ベクター (IV) を必要としません。 Mcrypt.

解決策:

大幅な再コーディングを行わずにシームレスに移行するには、次の手順に従います:

  1. 暗号化データの再作成: 事前にデータを PKCS#7 で手動でパディングします。 Mcrypt で暗号化します。コードの例を以下に示します。

    $key = "anotherpassword1";
    $str = "does it work 12";
    $enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB);
    ログイン後にコピー
  2. 復号化に OpenSSL を使用する: 暗号化されたデータを再作成した後、OpenSSL を使用して正しい暗号を使用して復号化し、モード:

    $key = "anotherpassword1";
    $enc = "0e93dce9a6a88e343fe5f90d1307684c";
    $dec = openssl_decrypt($enc, 'bf-ecb', $key, true);
    echo $dec;
    ログイン後にコピー

注: Mcrypt (56) と OpenSSL (0) では異なる IV 長が必要であると述べました。ただし、ECB モードは IV を使用しません。

これらの手順に従うことで、大規模なコード変更を必要とせずに Mcrypt から OpenSSL に移行でき、既存の暗号化データとの互換性が確保されます。

以上がコードを大幅に変更せずに Mcrypt から OpenSSL に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート