3

$concate次のコードに文字列があります。文字列のバイト配列を次のように計算しました。

for($i = 0; $i < strlen($concate); $i++){
    $binary[] = ord($concate[$i]);
}

今、バイト配列の SHA-256 ハッシュを計算したいのですが、$binaryその方法がわかりません。誰かがアドバイスしますか?

私がしなければならないことは: -

  1. 文字列のバイナリを (utf-8 エンコーディングを使用して) 計算します (例 - "hello world")。

  2. ステップ 1 の結果の SHA-256 を計算します。

  3. ステップ 2 の出力の 16 進数を計算します。

4

2 に答える 2

6

文字列自体はバイナリ形式です。これhash('sha256', $concate)で十分でしょう。出力をバイナリにする場合は、3 番目のパラメーターを true に設定します。

$hash = hash('sha256', $concate, true); // or
$hash = hex2bin(hash('sha256', $concate)); // provides same output as above

16進文字列ではなく2進文字列になります。

説明については、この例を参照してください。

于 2012-12-31T10:33:33.657 に答える
0

バイナリ データを PHP 文字列に格納できます。バイト配列に変換する必要はありません。これがあなたが探しているものだと思います。

echo hash('sha256', $concate);
于 2012-12-31T10:33:41.177 に答える