現在の位置: ホーム> 最新記事一覧> PHP 7.1のMcRyptをOpenSSLに置き換えます:詳細なチュートリアルとサンプルコード

PHP 7.1のMcRyptをOpenSSLに置き換えます:詳細なチュートリアルとサンプルコード

gitbox 2025-06-18

1。はじめに

PHP 7.1では、McRypt Function Libraryが時代遅れであると宣言されたため、開発者は暗号化と復号化操作のためにMcRyptの代わりにOpenSSL拡張機能を使用することをお勧めします。この記事では、OpenSLにスムーズに移行し、サンプルコードを介して暗号化と復号化を実装する方法を示すための詳細な手順を提供します。

2.なぜMcRyptを交換するのですか?

McRyptはかつて広く使用されている暗号化ツールでしたが、いくつかの明らかな欠点があります。まず、McRyptは長い間更新されておらず、新しいアルゴリズムとプロトコルのサポートがありません。第二に、大規模なデータ暗号化の場合、McRyptのパフォーマンスは不十分であり、PHPの実行時間が長すぎる可能性があります。さらに重要なことに、PHP 7.1では、McRyptは時代遅れであるとマークされており、将来除去される可能性があります。したがって、OpenSSLに移行することは、より安全で効率的なオプションです。

3. McRyptをOpenSSL拡張に置き換えます

3.1。 OpenSSL拡張子をインストールします

OpenSSL拡張機能を使用する前に、最初にそれが正しくインストールされ、有効になっていることを確認する必要があります。これがインストール手順です:

 
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo pecl install openssl

インストールが完了したら、PHP.iniファイルを編集し、次の行を追加してOpenSSL拡張機能を有効にします。

 
extension=openssl.so

3.2。 OpenSSLを使用した暗号化と復号化

OpenSSL拡張機能をインストールして有効にした後、暗号化と復号化操作に提供する機能を使用できます。 OpenSSLを使用して文字列を暗号化および復号化する方法を示す簡単な例を次に示します。

 
<?php
function encrypt($data, $key) {
    // 生成する128ビットランダムベクトル
    $iv = openssl_random_pseudo_bytes(16);
    // 使用AES-256-CBCアルゴリズムは暗号化されたデータを暗号化します
    $encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    // 暗号化されたデータとベクトルを返します
    return base64_encode($encrypted) . ':' . base64_encode($iv);
}
<p>function decrypt($data, $key) {<br>
// 暗号化されたデータとベクトルの解析<br>
list($encrypted, $iv) = explode(':', $data);<br>
// データを復号化します<br>
return openssl_decrypt(base64_decode($encrypted), 'AES-256-CBC', $key, OPENSSL_RAW_DATA, base64_decode($iv));<br>
}</p>
<p>// 使用の例<br>
$data = "Hello, World!";<br>
$key = "SecretKey123";<br>
$encryptedData = encrypt($data, $key);<br>
echo "暗号化されたデータ:" . $encryptedData . "\n";<br>
$decryptedData = decrypt($encryptedData, $key);<br>
echo "復号化されたデータ:" . $decryptedData . "\n";<br>
?><br>

この例では、暗号化にAES-256-CBCアルゴリズムを使用しました。データのセキュリティは、128ビットのランダムベクトルを生成し、暗号化と復号化中に使用することにより保証されます。

3.3。メモ

OpenSSL拡張機能を使用する場合は、次のポイントに注意してください。

  • 安全な暗号化アルゴリズムの使用を確保するには、AES-256-CBCを使用することをお勧めします。
  • 暗号化と復号化中は、ランダムベクトルを生成して使用してください。
  • データを暗号化する場合、データは適切なエンコード方法に保存する必要があります。
  • データを復号化する前に、暗号化されたデータとベクトルを正しく解析してください。

4。結論

McRyptをOpenSSL拡張に置き換えることは、暗号化操作のセキュリティとパフォーマンスを改善するための効果的な方法です。 OpenSSL拡張は、より多くの暗号化アルゴリズムをサポートするだけでなく、より効率的な処理機能も提供します。この記事で提供されているサンプルコードを使用すると、PHPで暗号化と復号化操作を簡単に実装して、データの送信とストレージがより安全になるようにします。

実際のニーズに応じて、コードを適切に調整および最適化して、プロジェクトのニーズを満たしていることを確認してください。