2017-07-31 2 views
0

私は同様の質問をSOで確認しましたが、私の質問に答えることはできませんので、ここに質問を投稿してください。 私のコードでサードパーティのAPI呼び出しを行う前に、パスワード用の生のSHAを生成する必要があります。 私は、ApacheのコーデックライブラリにDigestUtilsを使用しています。次のJavaコードjavaのRaw SHA1はPHPのものと一致しません

public static String sha1 (String input) 
    throws NoSuchAlgorithmException, 
     UnsupportedEncodingException { 

    return new String(DigestUtils.sha(input)); 
} 
// I suppose this gives me raw SHA. 

そしてPHPコードは(私はグーグルになった)、以下、 "PASSWORD" の入力については

$passwordSha = sha1($password, true); 

// The boolean value gives the SHA in binary format. 

を下回っているされて、私は午前出力

JAVA : "+��0G���i.)�\�I�_�7" 
PHP : "+��0G���i.)�\�I�_�7" 

ですこれらのジャンク値を比較するのが正しいかどうかはわかりませんが、私が生成するパスワードのダイジェストは、上記のコードに依存していますが、PHPとJAVAでは異なります。 (PHPで正しい価値を得る)。

PHPとJAVAで生のSHA1を生成する際の違いを知ってもらうのを助けてください。

UPDATE

出力を編集しました。私の悪い..

異なる入力のためのいくつかのより多くの結果

入力: "secretnonce101112015-09-30T14:12:15Za`t^X"

JAVA: "SのAM; *"

PHP: "I>рq"

私はJavaの出力にいくつかの余分な文字が表示されます。これが私の最終的なパスワードダイジェストを台無しにしているかどうかは分かりません。

+0

ランダムなバイトを 'String'に変換するのはかなり役に立たない。 16進文字列はもっと読みやすくなります。しかし、あなたのポイントは何ですか、あなたは両方のシステムから同じ値を得ています... ...? – Kayaman

+0

出力を貼り付ける際に問題がありました。それを修正しました。 –

答えて

0

VS

public static String sha1 (String input) 
    throws NoSuchAlgorithmException, 
     UnsupportedEncodingException { 

    return DigestUtils.sha1Hex(input); 
} 

Stringに変換中にISO-8859-1エンコーディングを使用した後、私は、正しい出力を得ました。

Soは文字列[]のバイトに変換されるべきであるISO-8859-1エンコーディングで

バイト[] passwordSha = SHA(input.getBytes() "ISO-8859-1");

これは私のために働いた.. これについてはPHP and Java hmac hash output matches in hex, doesn't match in raw binary. What's happening?を参照してください。

0

文字列に型キャストするのに何らかの問題があるのか​​どうか分かりませんが、次のように試してみてください。これは、両方を16進文字列として表す必要があります。

$passwordSha = sha1($password, false); 
+0

はい。 shaHex()とsha1($ password、false)に同じ出力が得られます。基本的に16進表現はjavaとphpで同じ出力を与えています。生のSHA1を使っている間に何が起こっているのか分かりません。そして、サードパーティーのAPIは、生のSHAを生成することを期待しています。これはどのようにこのことに当てはまりますか –

+0

次に、型キャストでなければなりません。 return new String(DigestUtils.sha1(input)、 "US-ASCII" ); – Doug

+0

JAVA: s A M ; * PHP: i> рq まだ同じではありません。私は何が間違っている可能性があるのか​​分かりません –

関連する問題