Ce face Uint8Array.prototype.toHex / fromHex
toHex scrie fiecare octet ca două cifre hexazecimale (litere mici). Uint8Array.fromHex citește un astfel de text și creează un tablou nou, iar setFromHex scrie octeții într-un tablou existent și returnează { read, written }.
Textul trebuie să aibă un număr par de caractere, doar cifre și litere de la a la f (mari sau mici); altfel apare SyntaxError. Este formatul obișnuit pentru hash-uri și chei.
Parametri
| Parametru | Descriere |
|---|---|
text |
Text hexazecimal, de exemplu "ff00a1". |
Ce returnează
toHex: text. fromHex: un Uint8Array nou. setFromHex: { read, written }.
Exemple
Exemplul 1: Octeți și text hexazecimal
const octeti = new Uint8Array([0, 15, 16, 255]);
console.log(octeti.toHex());
console.log(Uint8Array.fromHex("CAFE01"));
const tinta = new Uint8Array(4);
console.log(tinta.setFromHex("0a0b"), tinta);
Rezultat
000f10ff
Uint8Array(3) [ 202, 254, 1 ]
{ read: 4, written: 2 } Uint8Array(4) [ 10, 11, 0, 0 ]
Exemplul 2: Un hash SHA-256 afișat ca text
const date = new TextEncoder().encode("dexblog");
const hash = new Uint8Array(await crypto.subtle.digest("SHA-256", date));
console.log(hash.toHex());
Rezultat
312ec798280e370f7bf8e9d933ad7138a69592a6dbad34a4b51e166b7e644f11
Greșeli frecvente
- Dai un text cu număr impar de caractere (
"abc") și primeștiSyntaxError. Completează cu un 0 în față.
Comenzi înrudite
Uint8Array.prototype.toBase64 / fromBase64: Transformă octeți în text Base64 și înapoi, direct, fără btoa și atob.crypto.subtle.digest (SHA-256): Calculează un hash (SHA-1, SHA-256, SHA-384, SHA-512) pentru un text sau un fișier.Number.prototype.toString: Transformă un număr în text, opțional în altă bază: binar, octal, hexazecimal.