https://zhuanlan.zhihu.com/p/30323085 這是原鏈接
ASCII編碼
•ASCII編碼大致可以分作三部分組成:
•第一部分是:ASCII非打印控制字符(參詳ASCII碼表中0-31);
•第二部分是:ASCII打印字符,也就是CTF中常用到的轉換;
•第三部分是:擴展ASCII打印字符(第一第三部分詳見 ASCII碼表 解釋)。
•
•源文本:
The quick brown fox jumps over the lazy dog
ASCII編碼對應十進制:
84 104 101 32 113 117 105 99 107 32 98
114 111 119 110 32 102 111 120 32 106 117 109 112 115 32 111 118 101 114 32 116
104 101 32 108 97 122 121 32 100 111 103
ASCII對應表
Base64/32/16編碼
•base64、base32、base16可以分別編碼轉化8位字節為6位、5位、4位。16,32,64分別表示用多少個字符來編碼,這里我注重介紹base64。Base64常用於在通常處理文本數據的場合,表示、傳輸、存儲一些二進制數據。包括MIME的email,email via MIME,在XML中存儲復雜數據。
•i love CTF
•aSBsb3ZlIENURg==
•
•重要特征,大部分base64后面有1-2個等號
原因:
• Base64編碼要求把3個8位字節(38=24)轉化為4個6位的字節(46=24),之后在6位的前面補兩個0,形成8位一個字節的形式。
如果剩下的字符不足3個字節,則用0填充,輸出字符使用’=’,因此編碼后輸出的文本末尾可能會出現1或2個’=’。
URL編碼
•url編碼又叫百分號編碼,是統一資源定位(URL)編碼方式。URL地址(常說網址)規定了常用地數字,字母可以直接使用,另外一批作為特殊用戶字符也可以直接用(/,:@等),剩下的其它所有字符必須通過%xx編碼處理。
現在已經成為一種規范了,基本所有程序語言都有這種編碼,
•編碼方法很簡單,在該字節ascii碼的的16進制字符前面加%. 如
空格字符,ascii碼是32,對應16進制是’20’,那么urlencode編碼結果是:%20。
•源文本:
The
quick brown fox jumps over the lazy dog
•編碼后:
•%54%68%65%20%71%75%69%63%6b%20%62%72%6f%77%6e%20%66%6f%78%20%6a%75%6d%70%73%20%6f%76%65%72%20%74%68%65%20%6c%61%7a%79%20%64%6f%67
MD5
•Message
Digest Algorithm MD5(中文名為消息摘要算法第五版)為計算機安全領域廣泛使用的一種散列函數,用以提供消息的完整性保護
•結果都是一個定長:16 、32、64。
•MD5
(“message digest”) = f96b697d7cb7938d525a2f31aaf161d0
莫爾斯電碼
•
•摩爾斯電碼(Morse Code)是由美國人薩繆爾·摩爾斯在1836年發明的一種時通時斷的且通過不同的排列順序來表達不同英文字母、數字和標點符號的信號代碼,摩爾斯電碼主要由以下5種它的代碼組成:
•點(.)
•划(-)
•每個字符間短的停頓(通常用空格表示停頓)
•每個詞之間中等的停頓(通常用
/ 划分)
•以及句子之間長的停頓
在線解碼:Morse Code
柵欄密碼
•柵欄密碼(Rail-fence Cipher)就是把要加密的明文分成N個一組,然后把每組的第1個字符組合,每組第2個字符組合…每組的第N(最后一個分組可能不足N個)個字符組合,最后把他們全部連接起來就是密文,這里以2欄柵欄加密為例。
•明文:
The quick brown fox jumps over the lazy dog
•
•去空格:
Thequickbrownfoxjumpsoverthelazydog
•
•分組:
Th eq ui ck br ow nf ox ju mp so ve rt he la zy
do g
•
•第一組:
Teucbonojmsvrhlzdg
•
•第二組:
hqikrwfxupoeteayo
•
•密文:
Teucbonojmsvrhlzdghqikrwfxupoeteayo
凱撒密碼
•凱撒密碼(Caesar Cipher或稱愷撒加密、愷撒變換、變換加密、位移加密)是一種替換加密,明文中的所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。例,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推
•
•加密實例:
明文: The quick brown fox jumps over the lazy dog
偏移量:1
密文: Uif rvjdl cspxo gpy kvnqt pwfs uif mbaz eph
解密網站http://planetcalc.com/1434/
ROT5/13/18/47
•(其實就是特殊的凱撒密碼)
•ROT5/13/18/47是一種簡單的碼元位置順序替換暗碼。此類編碼具有可逆性,可以自我解密,主要用於應對快速瀏覽,或者是機器的讀取。
•ROT5
是 rotate by 5 places 的簡寫,意思是旋轉5個位置,其它皆同。下面分別說說它們的編碼方式:
•ROT5:只對數字進行編碼,用當前數字往前數的第5個數字替換當前數字,例如當前為0,編碼后變成5,當前為1,編碼后變成6,以此類推順序循環。
•ROT13:只對字母進行編碼,用當前字母往前數的第13個字母替換當前字母,例如當前為A,編碼后變成N,當前為B,編碼后變成O,以此類推順序循環。
•ROT18:這是一個異類,本來沒有,它是將ROT5和ROT13組合在一起,為了好稱呼,將其命名為ROT18。
•ROT47:對數字、字母、常用符號進行編碼,按照它們的ASCII值進行位置替換,用當前字符ASCII值往前數的第47位對應字符替換當前字符,例如當前為小寫字母z,編碼后變成大寫字母K,當前為數字0,編碼后變成符號_。用於ROT47編碼的字符其ASCII值范圍是33-126,具體可參考ASCII編碼,下面以rot13以例。
•
•明文:
the quick brown fox jumps over the lazy dog
•
•密文:
gur dhvpx oebja sbk whzcf bire gur ynml qbt
簡單替換密碼
•簡單換位密碼(Simple Substitution Cipher)加密方式是以每個明文字母被與之唯一對應且不同的字母替換的方式實現的,它不同於愷撒密碼,因為密碼字母表的字母不是簡單的移位,而是完全是混亂的。
比如:
•
- •明文字母
- abcdefghijklmnopqrstuvwxyz
- •密文文字母
- phqgiumeaylnofdxjkrcvstzwb
•明文:
the quick brown fox jumps over the lazy dog
•
•密文:
cei jvaql hkdtf udz yvoxr dsik cei npbw gdm
豬圈密碼
•豬圈密碼(Pigpen Cipher或稱九宮格密碼、朱高密碼、共濟會密碼或共濟會員密碼),是一種以格子為基礎的簡單替代式密碼。
•明文字母和對應密文:
•明文:
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
•
•密文:
•
jjencode/aaencode
jjencode將JS代碼轉換成只有符號的字符串,類似於rrencode,介紹的 PPT ,aaencode可以將JS代碼轉換成常用的網絡表情,也就是我們說的顏文字js加密。
•jjencode/aaencode的解密直接在瀏覽器的控制台里輸入密文即可執行解密。
Jsfuck/jother
brainfuck
•Brainfuck是一種極小化的計算機語言,按照"Turing complete(完整圖靈機)"思想設計的語言,它的主要設計思路是:用最小的概念實現一種“簡單”的語言,BrainF**k
語言只有八種符號,所有的操作都由這八種符號( > < + - . , [ ] )的組合來完成。
•hello!
•
•#!shell
•+++++
+++++ [->++ +++++ +++<] >++++ .—. +++++ ++…+ ++.<+ +++++ +++++
•[->++
+++++ ++++< ]>+++ ++++. <++++ +++[- >---- —<] >–.<
+++++ ++[->
•-----
–<]> ----- ----- .<
•Brainfuck: https://www.splitbrain.org/services/ook
在線工具:Brainfuck/Ook! Obfuscation/Encoding