現在の位置: ホーム> 最新記事一覧> sha-256およびsha-512 crypt()を使用したアルゴリズム($ 5 $および$ 6 $)

sha-256およびsha-512 crypt()を使用したアルゴリズム($ 5 $および$ 6 $)

M66 2025-05-31

PHPでは、 Crypt()関数は、SHA-256およびSHA-512に基づくハッシュ暗号化など、さまざまな暗号化アルゴリズムをサポートする強力な暗号化暗号化ツールです。これらの2つのアルゴリズムは、crypt()関数の$ 5 $$ 6 $の接頭辞によって区別されます。この記事では、これら2つの方法を使用してパスワードを暗号化し、対応するサンプルコードを提供する方法について詳しく説明します。

crypt()関数の紹介

Crypt()は、PHPの一元配置暗号化に使用される関数であり、通常はパスワードのハッシュに使用されます。それを使用すると、「塩」を指定することにより、暗号化アルゴリズムと暗号化の結果を制御できます。

 string crypt(string $string, string $salt)
  • $文字列:暗号化する必要がある元の文字列。

  • $ SALT :暗号化アルゴリズムとその構成、形式はアルゴリズムからアルゴリズムまでさまざまです。

SHA-256暗号化($ 5 $)

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暗号化($ 6 $)

同様に、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;

アプリケーションシナリオとセキュリティのヒント

  1. ユーザーパスワードストレージ:プレーンテキストにユーザーパスワードを保存することはお勧めしません。安全な塩値と適切な数のラウンドでcrypt()を使用することは安全な方法です。

  2. パスワードの比較:パスワードを確認する場合、ユーザーの入力は同じ塩値で再クリックされ、保存されたハッシュ値と比較する必要があります。

  3. HTTPS送信:暗号化されたデータが、 https://m66.netなどの安全なプロトコルを介して送信され、中間の攻撃を避けます。

まとめ

この記事を通して、PHPのCrypt()関数を使用して5ドル6ドルを組み合わせて、SHA-256とSHA-512に基づいて安全な暗号化を実装できます。この方法は、ログイン認証やユーザー情報保護など、複数のシナリオに適しています。強力な塩価値戦略と高いラウンド数の設定を組み合わせることで、データのセキュリティを大幅に改善できます。