Bajty i zapis szesnastkowy
Część sekcji Uwierzytelnianie i bezpieczeństwo ścieżki Node.js w Coddy. Lekcja 1 z 24.
Funkcje kryptograficzne operują na bajtach. Bajt to liczba z zakresu od 0 do 255. UTF-8 koduje tekst jako bajty, a obiekt Buffer przechowuje te bajty w Node. Zapis szesnastkowy, czyli hex, przedstawia każdy bajt jako dwa znaki, używając cyfr od 0 do 9 i liter od a do f. Dzięki temu bajty można wygodnie przechowywać jako tekst.
const bytes = Buffer.from('Ok', 'utf8');
bytes.toString('hex'); // '4f6b'
Buffer.from('4f6b', 'hex').toString('utf8'); // 'Ok'Bajt odpowiadający literze O ma wartość 79 w systemie dziesiętnym, a w zapisie szesnastkowym zapisuje się go jako 4f.
Ta konwersja jest odwracalna: zmienia reprezentację, a nie informację. Zakodowanie hasła w systemie szesnastkowym go nie chroni. Hash hasła jest weryfikowany przez ponowne obliczenie wartości pochodnej zamiast dekodowania go. Tutaj dane wejściowe to zwykły tekst, a ćwiczenie zwraca jego reprezentację szesnastkową, aby można było porównać obie postacie.
Wyzwanie
ŁatwyTo niewielki projekt do ćwiczeń. Jego konfiguracja jest już przygotowana; edytuj tylko exercise.js.
Zwróć pole hex zawierające podany tekst zakodowany jako bajty UTF-8, a następnie zapisany w systemie szesnastkowym. Wysłanie {"text":"Hi"} metodą POST na adres /result zwraca {"hex":"4869"}. Tekst Ada zwraca 416461.
Spróbuj swoich sił
export function exercise({ text }) {
return { hex: text };
}
Wszystkie lekcje w sekcji Uwierzytelnianie i bezpieczeństwo
1Hasła
Bajty i zapis szesnastkowyWyprowadzanie klucza z hasłaNowa sólNigdy nie przechowuj hasełPorównywanie bajtów kluczaSprawdzanie hasłaZasady rejestracjiPoćwicz samodzielnie: Edytor online Express