PHPでは、 Crypt()関数は、SHA-256およびSHA-512に基づくハッシュ暗号化など、さまざまな暗号化アルゴリズムをサポートする強力な暗号化暗号化ツールです。これらの2つのアルゴリズムは、crypt()関数の$ 5 $と$ 6 $の接頭辞によって区別されます。この記事では、これら2つの方法を使用してパスワードを暗号化し、対応するサンプルコードを提供する方法について詳しく説明します。
Crypt()は、PHPの一元配置暗号化に使用される関数であり、通常はパスワードのハッシュに使用されます。それを使用すると、「塩」を指定することにより、暗号化アルゴリズムと暗号化の結果を制御できます。
string crypt(string $string, string $salt)
$文字列:暗号化する必要がある元の文字列。
$ SALT :暗号化アルゴリズムとその構成、形式はアルゴリズムからアルゴリズムまでさまざまです。
SHA-256は、一般的に使用される暗号化ハッシュ関数であり、 Crypt()関数の5ドルのプレフィックスによって有効になります。オプションで「ラウンド」とカスタムソルト値を追加できます。
$password = 'mypassword';
$salt = '$5$rounds=5000$mysaltvalue$';
$hash = crypt($password, $salt);
echo $hash;
説明:
$ 5 $は、 SHA-256の使用を指定します。
ラウンド= 5000暗号化ラウンドの数を設定します(オプション)。
MySaltValueは、カスタマイズできる塩値の弦です。
暗号化の結果は、簡単に識別できるように5ドルから始まります。
例の出力は次のとおりです。
$5$rounds=5000$mysaltvalue$5O2dlyLbMFx.kPQzMt4HZG4lDHzs9DGx85xuRSkjRA/
同様に、SHA-512はcrypt()を介して実装することもでき、プレフィックスを$ 6 $に変更するだけです。
$password = 'mypassword';
$salt = '$6$rounds=10000$customsalt$';
$hash = crypt($password, $salt);
echo $hash;
説明:
$ 6 $ sha-512暗号化を有効にします。
ラウンド= 10000は、10000の暗号化の反復が実行されることを示しています。
税関はあなたの塩の価値です。
例の出力は次のとおりです。
$6$rounds=10000$customsalt$WXnQmvLQu.wNcB3VJmfYB/mURR3p8ddmdvYqTbWn1l6gBBR4vlmMHI8LtkYmK5I24T2MGk7pDODDZAxU2ueCd0
安全のために、塩値はできるだけランダムでなければなりません。塩値を生成するための単純な関数は次のとおりです。
function generateSalt($length = 16) {
return bin2hex(random_bytes($length / 2));
}
$password = 'mypassword';
$salt = '$6$rounds=10000$' . generateSalt() . '$';
$hash = crypt($password, $salt);
echo $hash;
ユーザーパスワードストレージ:プレーンテキストにユーザーパスワードを保存することはお勧めしません。安全な塩値と適切な数のラウンドでcrypt()を使用することは安全な方法です。
パスワードの比較:パスワードを確認する場合、ユーザーの入力は同じ塩値で再クリックされ、保存されたハッシュ値と比較する必要があります。
HTTPS送信:暗号化されたデータが、 https://m66.netなどの安全なプロトコルを介して送信され、中間の攻撃を避けます。
この記事を通して、PHPのCrypt()関数を使用して5ドルと6ドルを組み合わせて、SHA-256とSHA-512に基づいて安全な暗号化を実装できます。この方法は、ログイン認証やユーザー情報保護など、複数のシナリオに適しています。強力な塩価値戦略と高いラウンド数の設定を組み合わせることで、データのセキュリティを大幅に改善できます。