Leet(1337)駭客語是什麼?替換對照表、CTF Flag 產生器與 Python 範例
Leet(英文中亦稱 leetspeak 或 eleet。Leet拼寫法:L337, 3L337, 31337或1337),又稱駭客語,是指一種發源於西方國家的BBS、線上遊戲和駭客社群所使用的文字書寫方式。通常是把拉丁字母轉變成數字或是特殊符號,例如E寫成3、A寫成@等。或是將單字寫成同音的字母或數字,如to寫成2、for寫成4等等,俗稱 CTF Flag 產生器。

其實我會知道這個是因為我在出CTF題目時,為了不讓flag這麼好猜到意外看到的工具(`Д´)
今天要介紹flag產生器,其產生的語言就是leet駭客語言!
https://github.com/ss8651twtw/CTF-flag-generator
使用方法
To translate alpha characters to leet string:
./genflag.py 'this_is_your_flag'
And output maybe:
TH1S_i5_yOUr_fL@6
Added entropy: 8.75 bits
例如我打 sectools.tw_is_the_best_platform!

很有意思吧!
常見的 Leet 替換對照
| 字母 | Leet 寫法 |
|---|---|
| A | 4、@ |
| E | 3 |
| I / L | 1、! |
| O | 0 |
| S | 5、$ |
| T | 7 |
| G | 9、6 |
| B | 8 |
用 Python 自己寫一個 Leet 轉換器
import random
LEET = {'a': '4@', 'e': '3', 'i': '1!', 'o': '0', 's': '5$', 't': '7', 'g': '9', 'b': '8'}
def to_leet(text):
return ''.join(random.choice(LEET[c.lower()]) if c.lower() in LEET and random.random() < 0.7 else c
for c in text)
print('flag{' + to_leet('hello_hacker') + '}')
常見問題
把密碼改成 Leet 寫法會比較安全嗎?
幫助有限。密碼破解工具(例如 hashcat 的規則檔)早就內建 Leet 替換,P@ssw0rd 幾乎和 Password 一樣容易被猜到。想要安全的密碼,長度與隨機性才是關鍵,可以用 密碼外洩查詢與強度檢測 測試看看。
出 CTF 題目時為什麼要把 Flag 寫成 Leet?
避免參賽者直接猜出 Flag,也能防止只靠關鍵字搜尋就找到答案,讓解題過程更公平。
