Ich habe einen Puffer mit der Größe n (davon ausgegangen, dass es sehr groß ist und keinen Indexüberlauf haben). Ich möchte die ersten 16 Bytes des Puffers hashen und das Hash-Ergebnis als nächsten Ort im Puffer verwenden, um die nächsten 16 Bytes zu hashen und so weiter und so fort. Dies ist meine erste Codezeile:Javascript konvertieren Puffer zu einer Nummer
var newLocation = crypto.createHash("sha256").update(buf.slice(0, 16)).digest()
newLocation ist eigentlich ein Puffertyp. Ich möchte wissen, wie kann ich es in eine Indexnummer konvertieren, die ich zu buf.slice(index, 16)
springen kann?
Ist es möglich, dass ich den Hash-Wert einer N-Bit-Nummer zuordnen kann, die N variieren kann? Zum Beispiel, wenn ich einen 256-Bit-Index möchte, kann ich direkt von newLocation konvertieren? Vielen Dank. – Luke
16 Bytes ist die Länge der Daten als Eingabe für die Hash-Funktion. Die Länge des Hash-Wertes beträgt 256 Bit, was 32 Bytes entspricht. Ich denke, Verwendung Digest ('binär') wird eine 256-Bit-Binärzeichenfolge ergeben. Ist es jedoch möglich, dass ich den Hash-Wert einer N-Bit-Nummer zuordnen kann, die N variieren kann? Wenn ich zum Beispiel einen 128-Bit- oder 512-Bit-Index haben möchte, kann ich direkt von newLocation konvertieren? Vielen Dank. – Luke
@LuqinWang Sie können, aber eine N-Bit-Nummer kann sehr groß sein, wenn N größer als 16 ist, geschweige denn 256. In Anbetracht der Tatsache, dass Sie diese Zahl als Index eines Arrays verwenden werden, ist dieses Array sehr gut möglich größer als Ihre Speicherkapazität. Ich weiß wirklich nicht, warum du es machen willst. – Quarter2Twelve