2009-07-17 12 views
1

現在、java.security.signatureを使用して署名を作成すると、文字列が返されます。 文字列をノートパッド++にコピーするときにしか見えない特殊文字があるので、この文字列を使うことはできません。これらの特殊文字を削除すると、プログラムの文字列の残りを使用できます。メモ帳で文字列から奇妙な文字を削除する手助けが必要です

彼らは私が本当に彼らはそれらの乗り心地を取得する方法を伝えるため、その困難が何であるかを理解していない言葉ACK GS STX SIのSUB ETB BS VT

でブラックボックスのように見えます。

これらの文字を削除するために実行できる機能はありますか?あなたが署名を「作る」されている方法

私はポストに供給base64でクラスを使用すると、私は署名

System.out.println(signature); 
String base64 = Base64.encodeBytes(sig); 
System.out.println(base64); 
String sig2 = new String (Base64.decode(base64)); 
System.out.println(sig2); 

に戻ってカントは、出力

”zÌý¥y]žd”xKmËY³ÕN´Ìå}ÏBÊNÈ›`Αrp~jÖüñ0…Rõ…•éh?ÞÀ_û_¥ÂçªsÂk{6H7œÉ/”âtTK±Ï…Ã/Ùê² 
lHrM/aV5XZ5klHhLbctZs9VOtMzlfc9Cyk7Im2DOkXJwfmoG1vzxMIVS9YWV6Wg/HQLewF/7X6XC56pzwmt7DzZIN5zJL5TidFRLsc+Fwy/Z6rIaNA2uVlCh3XYkWcu882tKt2RySSkn1heWhG0IeNNfopAvbmHDlgszaWaXYzY= 
[[email protected] 
+0

問題は? – akarnokd

答えて

5

暗号署名が文字列ではなくバイトを生成するため、奇数文字があります。したがって、印刷可能な表現が必要な場合は、Base64 encode ithere's a public domain implementation for Java)にする必要があります。

暗号化されていない文字を暗号署名から削除すると、検証に使用できなくなるため、暗号化されていない文字は使用できなくなります。

更新:

[Bの@

15356d5これは、バイト配列に呼ばれるのtoStringの結果です。 "["は配列を意味し、 "B"はバイトを意味し、 "15356d5"は配列のアドレスです。 。

Signature sig = new Signature("dsa"); 
sig.initVerify(key); 
sig.verify(Base64.decode(base64)); // <-- bytes go here 
+0

シグネチャのbase64変換は、テクニカルスタンドポイントから有効なシグネチャとして引き続き保持されますか? – ChronoXIII

+0

それはすべてのデータを含んでいます。署名の妥当性をチェックする前に、base64エンコーディングを元に戻す必要があります。 –

+0

署名のベースコード変換を再度変更する際に問題が発生しました。私は自分の初期投稿を更新しました – ChronoXIII

5

を与える ? signメソッドを使用すると、文字列ではなくバイト配列が返されます。これはテキストのバイナリ表現ではなく、任意のバイナリデータです。それはあなたが使用すべきものです。文字列に変換する必要がある場合は、データの破損を避けるためにbase64変換を使用する必要があります。

+0

Signatureバイト配列をbase64で変換しますか? – ChronoXIII

0

私が正しくあなたの問題を理解していれば、あなたはコードで文字を取り除く必要があります。あなたのような[Signature.verify](http://java.sun.com/j2se/1.4.2/docs/api/java/security/Signature.html#verify(byte[]))

何かにデコードのうち、あなたが得る配列を渡すべきです

編集:私は他の人に同意します。このような暗号出力を処理することは、あなたが通常望むものではないことに同意します。 。

+5

暗号署名のデータを取り除くことはめったに良い考えではありません...私はそれがより基本的な問題だと強く疑う。 –

+0

私はあまりにも不思議だった。 – akarnokd

+0

32未満のコードではどういう意味ですか? – ChronoXIII

関連する問題