ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してデータを安全に暗号化および復号化するにはどうすればよいですか?
PHP でパスワードを安全に暗号化および復号化する方法
外国アカウントの資格情報などの機密ユーザー情報を保存するには、データを保護するための特別な予防措置が必要です安全。暗号化は保護層を提供しますが、平文データへの不正アクセスを防ぐ堅牢な方法を採用することが重要です。
ハッシュと暗号化
ハッシュは、次の場合に推奨されるアプローチです。パスワードの保管場所。暗号化とは異なり、ハッシュはパスワードを元に戻せない固有の形式に変換するため、元のパスワードを取得することが事実上不可能になります。これにより、たとえ攻撃者がハッシュされたパスワードにアクセスしたとしても、ユーザー アカウントを侵害することはできません。
暗号化および復号化関数
暗号化が必要な場合は、PHPテキストを暗号化および復号化するためのいくつかの関数を提供します。一般的な方法の 1 つは、AES-128 としても知られる Rijndael 暗号です。
$key = 'password to (en/de)crypt'; $string = ' string to be encrypted '; // note the spaces
To Encrypt:
$iv = mcrypt_create_iv( mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM ); $encrypted = base64_encode( $iv . mcrypt_encrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), $string, MCRYPT_MODE_CBC, $iv ) );
To復号化:
$data = base64_decode($encrypted); $iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)); $decrypted = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_128, hash('sha256', $key, true), substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC)), MCRYPT_MODE_CBC, $iv ), "" );
警告
暗号化されたデータは、認証されていない場合、パディング オラクル攻撃に対して脆弱になります。認証された暗号化メカニズムは常に暗号化と組み合わせて使用する必要があります。
ベスト プラクティス
最高レベルのセキュリティを確保するには、次のベスト プラクティスに従ってください:
以上がPHP を使用してデータを安全に暗号化および復号化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。