ホームページ > バックエンド開発 > PHPチュートリアル > パスワード暗号化および復号化のための非推奨の mcrypt 拡張機能の安全な代替手段は何ですか?

パスワード暗号化および復号化のための非推奨の mcrypt 拡張機能の安全な代替手段は何ですか?

Patricia Arquette
リリース: 2024-12-11 12:40:18
オリジナル
285 人が閲覧しました

What are the Secure Alternatives to the Deprecated mcrypt Extension for Password Encryption and Decryption?

パスワード暗号化用の非推奨の mcrypt 拡張機能の代替

以前パスワード暗号化に使用されていた mcrypt 拡張機能は非推奨となり、削除されます。完全に PHP 7.2 で行われます。このため、安全なパスワード暗号化の適切な代替手段を見つけることについて懸念が生じます。

推奨されるアプローチ: パスワード ハッシュ

ベスト プラクティスとして、パスワードをハッシュするのではなく、パスワードをハッシュすることを強くお勧めします。それらを暗号化します。ハッシュによりパスワードは元に戻せない値に変換され、攻撃者がデータベースやファイルにアクセスしたとしても元のパスワードを回復することが不可能になります。

代替暗号化方式

ただし、パスワードの暗号化が必要で、パスワードを復号化する機能が必要な場合は、次のオプションがあります。推奨:

  • Libsodium: 安全な暗号化と復号化を提供する PHP 拡張機能。
  • defuse/php-encryption: ストレートな PHP コード安全な暗号化と復号化を提供するライブラリ機能。
  • OpenSSL: サーバーにまだインストールされていない場合は、PHP でコンパイルできる、広く利用可能な暗号化ライブラリです。

コード例

これらの代替手段のいずれかを使用するには、元の mcrypt と同様の構造に従うことができます。コード:

// Generate a secure random initialization vector
$iv = random_bytes(16);

// Encrypt the password using AES-256 in CBC mode
// Note: Replace key with a securely generated encryption key
$encrypted = openssl_encrypt($string, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

// Store the encrypted password and initialization vector for later decryption
ログイン後にコピー

復号化

同じライブラリとキーを使用して復号化を実行できます:

// Decrypt the encrypted password using AES-256 in CBC mode
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
ログイン後にコピー

以上がパスワード暗号化および復号化のための非推奨の mcrypt 拡張機能の安全な代替手段は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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