ホームページ  >  記事  >  バックエンド開発  >  java - PHP はどのように文字列をバイナリ配列に変換し、バイナリ配列で md5 ダイジェストを実行し、ダイジェストされたバイナリ配列を出力用の 16 進文字列に変換しますか?

java - PHP はどのように文字列をバイナリ配列に変換し、バイナリ配列で md5 ダイジェストを実行し、ダイジェストされたバイナリ配列を出力用の 16 進文字列に変換しますか?

WBOY
WBOYオリジナル
2016-08-04 09:21:011213ブラウズ

入力パラメータ文字列 waitForSignString をバイナリ配列に変換し、エンコードに UTF-8 を使用して (waitForSignString.getByte("utf-8") などの Java コード)、署名入力パラメータ (waitForSignBytes) のバイナリ形式データを取得します。 。

MD5、Sha1、または Sha256 アルゴリズムを使用した waitForSignBytes のダイジェスト署名。結果のバイナリ配列データ (signatureBytes) で署名を取得します

署名出力の結果のバイナリ配列 (signatureBytes) に対して 16 進文字列エンコードを実行して、最終的な署名文字列 (signature) を取得します

アルゴリズム式:

文字列署名 = Hex(digest (stringToSign+secretKey)) ダイジェスト アルゴリズムは次のとおりです: MD5、Sha256Hex

この署名アルゴリズムは PHP でどのように実装されるべきですか? PHP の md5 には配列を操作する方法がないようです。 。 。 。

返信内容:

入力パラメータ文字列 waitForSignString をバイナリ配列に変換し、エンコードに UTF-8 を使用して (waitForSignString.getByte("utf-8") などの Java コード)、署名入力パラメータ (waitForSignBytes) のバイナリ形式データを取得します。 。

MD5、Sha1、または Sha256 アルゴリズムを使用した waitForSignBytes のダイジェスト署名。結果のバイナリ配列データ (signatureBytes) で署名を取得します

署名出力の結果のバイナリ配列 (signatureBytes) に対して 16 進文字列エンコードを実行して、最終的な署名文字列 (signature) を取得します

アルゴリズム式:

文字列署名 = Hex(digest (stringToSign+secretKey)) ダイジェスト アルゴリズムは次のとおりです: MD5、Sha256Hex

この署名アルゴリズムは PHP でどのように実装されるべきですか? PHP の md5 には配列を操作する方法がないようです。 。 。 。

  1. PHP では、文字列はバイナリ互換であり、文字列自体が UTF-8 でエンコードされている場合、それはすでに UTF-8 バイナリ配列です。

  2. PHP の md5 関数は、文字列 (つまり、バイナリ配列) の MD5 値を直接計算でき、デフォルトの出力は 16 進数に変換された結果です。

それでは、Modo 操作が Java で達成したいことは...
PHP では次のようになります $md5 = md5('字符串');

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。