Hex
Desc
Saat data dienkripsi, hasil ciphertext sering berisi byte yang tidak bisa ditampilkan sebagai karakter biasa. Agar data biner seperti itu mudah disimpan, dikirim, atau ditempel di teks, kita bisa merepresentasikannya dalam bentuk hexadecimal.
Hexadecimal adalah basis-16, memakai karakter 0-9 dan a-f. Satu byte direpresentasikan oleh dua digit hex. Misalnya karakter A punya nilai ASCII desimal 65, yang dalam hex menjadi 41.
Pada challenge ini, flag diberikan sebagai string hex panjang. Kita perlu decode hex tersebut kembali menjadi byte, lalu decode byte menjadi teks.
63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747dDi Python, fungsi
bytes.fromhex()dapat digunakan untuk mengonversi hex ke byte. Metode.hex()melakukan kebalikannya, yaitu mengubah bytes menjadi representasi hex.
Resources
Solution
With Python
hex_string = "63727970746f7b596f755f77696c6c5f62655f776f726b696e675f776974685f6865785f737472696e67735f615f6c6f747d"
flag = bytes.fromhex(hex_string).decode()
print(flag)bytes.fromhex(hex_string) mengubah string hex menjadi data bertipe bytes. Setelah itu .decode() mengubah bytes tersebut menjadi string UTF-8 yang bisa dibaca sebagai flag.
With CyberChef
- Buka CyberChef.
- Masukkan string heksadesimal ke dalam input.
- Pilih operasi "From Hex" dari daftar operasi.
Summary
Hex adalah representasi teks untuk data byte. Di Python, bytes.fromhex() dipakai untuk decode hex ke bytes, lalu .decode() dipakai untuk mengubah bytes menjadi string.
Flag
crypto{You_will_be_working_with_hex_strings_a_lot}