ホームページ >バックエンド開発 >PHPチュートリアル >java - PHP はどのように文字列をバイナリ配列に変換し、バイナリ配列で md5 ダイジェストを実行し、ダイジェストされたバイナリ配列を出力用の 16 進文字列に変換しますか?
入力パラメータ文字列 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 には配列を操作する方法がないようです。 。 。 。
PHP では、文字列はバイナリ互換であり、文字列自体が UTF-8 でエンコードされている場合、それはすでに UTF-8 バイナリ配列です。
PHP の md5 関数は、文字列 (つまり、バイナリ配列) の MD5 値を直接計算でき、デフォルトの出力は 16 進数に変換された結果です。
それでは、Modo 操作が Java で達成したいことは...
PHP では次のようになります $md5 = md5('字符串');