Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

To 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

Poćwicz samodzielnie: Edytor online Express