Hallo,
ich soll ein Dokuemt erstellen, dass irgendwelche Informationen enthalten
und letztendlich signiert werden soll. Der Signaturwert wird in das
Dokument eingebettet. Nur zum Beispiel soll ein Dokument erstellt werden,
dass Informationen über eine Adresse hergibt und den Siignaturwert noch
angibt. Also enthält das Dokument Vornamen, Name, Strasse, Strassennr.,
Postleitzahl und Stadt. Jedes Datum soll gehasht und entsprechend verknüpft
werden. Dann soll dieses Hashwert signiert werden. Leider ist die Ausgabe
immer eine Byte-Array. Ich hatte überlegt dieses Byte-Array einer
Hashfunktion zu übergeben, aber leider ist der Rückgabewert ebenfalls ein
Byte-Arrays Gibt es denn nicht eine Möglichkeit daraus einen vernünftigen
Wert zu machen? Umwandeln in einen String und dann konkatenieren? Irgendwie
scheint mir die Lösung zu umstädnlich zu sein.
Gruss
Felix
Felix Yu - 23 Jan 2004 13:12 GMT
Sorry! Wrong thread...
> Hallo,
> ich soll ein Dokuemt erstellen, dass irgendwelche Informationen enthalten
[quoted text clipped - 13 lines]
>
> Felix
Michael Amling - 23 Jan 2004 15:10 GMT
> Hallo,
> ich soll ein Dokuemt erstellen, dass irgendwelche Informationen enthalten
[quoted text clipped - 5 lines]
> werden. Dann soll dieses Hashwert signiert werden. Leider ist die Ausgabe
> immer eine Byte-Array.
Natürlich.
> Ich hatte überlegt dieses Byte-Array einer
> Hashfunktion zu übergeben, aber leider ist der Rückgabewert ebenfalls ein
> Byte-Arrays
Naturlich.
> Gibt es denn nicht eine Möglichkeit daraus einen vernünftigen
> Wert zu machen?
Warum nicht in hex oder base36 ubersetzen? Hier kostenlos ein Beispiel:
public static String byteZuHex(byte[] einkommende) {
StringBuffer sbf=new StringBuffer();
for (int jj=0; jj<einkommende.length; ++jj) {
int welche=einkommende[jj] & 0xFF;
sbf.append("0123456789ABCDEF".charAt(welche/16));
sbf.append("0123456789ABCDEF".charAt(welche%16));
}
return sbf.toString();
}
public static byte[] hexZuByte(String hexe) {
byte[] ausgabe=new byte[hexe.length()/2];
for (int jj=0, kk=0; jj<ausgabe.length; ++jj) {
ausgabe[jj]=
(byte)(hexZuDec(hexe.charAt(kk++))*16+
hexZuDec(hexe.charAt(kk++)));
}
return ausgabe;
}
private static int hexZuDec(char hexZahl) {
if (hexZahl>='0' && hexZahl<='9') {
return hexZahl-'0';
}
return hexZahl+(10-'A');
}
> Umwandeln in einen String und dann konkatenieren? Irgendwie
> scheint mir die Lösung zu umstädnlich zu sein.
--Meik Amling