Erste hex-Darstellung der sha256-hash mit SJCL
Den SJCL docs geben Sie den folgenden code als Beispiel für sha256:
var bitArray = sjcl.hash.sha256.hash("message");
var digest_sha256 = sjcl.codec.hex.fromBits(bitArray);
Den digest in diesem Beispiel gleich zu einer 64-Zeichen hex-string, wenn ich hatte erwartet, einen 16-stelligen hex-string (256 bits = 16 hex-Zeichen). Was bin ich? Wie kann ich ein 16-Zeichen-digest für den Hashwert?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist Missverständnis etwas. 256 bits nicht gleich 16 hex-stellen.
Denken Sie an es auf diese Weise: 256 bits ist gleich 32 bytes (8 bits in einem byte). Ein byte (8 bits) codieren kann 256 (2^8) verschiedene Werte. Eine einzelne Hexadezimalzahl (Basis 16) codieren kann 16 unterschiedliche Werte haben. Wie viele hex-Ziffern brauchen Sie, wenn Sie möchten, codieren die gleiche Anzahl von Werten, die als byte? Zwei; zwei hex-Ziffern codieren kann 256 verschiedene Werte (16^2). Also, wenn wir brauchen zwei hex-Ziffern pro byte, und 256 bits entspricht 32 Byte, dann das bedeutet, wir brauchen 64 hex-Ziffern darstellen, die Informationen, die gespeichert werden können in 256 bit.
Den hex-digest ist in Ordnung. Es soll eine Länge von 64 Zeichen.