最近訓練CTF的時候,發現密碼學這塊的知識不太系統,所以自己接下來會陸陸續續整理出來
rot密碼
rot密碼其實可以看作是凱撒密碼的一種變式
本質都是移位運算
rot密碼按種類大致分為以下幾類
rot5:只將字符串中的數字進行加密,步數為5,同時在0-9十個數字進行循環,如1在rot5加密后為6,而6在rot5加密后為1
rot13:只將字符串中的字母進行加密,步數為13,加密方式上最接近凱撒密碼,分別在A-Z或a-z之間循環,如A在rot13加密后為N,Z在rot13加密后為M
rot18:字面意思(5+13=18) 即將上述兩種加密方式結合,分別對數字和字母進行相應的操作
rot47:由於無論是rot5、rot13或rot18都只能對數字和字母進行相應的加密,而對“!@#¥%&”之類的符號卻缺少加密,因此在此基礎上引入ASCII碼(對應圖表見下)
如果理解了上面的rot5、rot13、rot18,那么rot47也相當好理解了,只是將步數改為47而已(同樣存在循環)
對數字、字母、常用符號進行編碼,按照它們的ASCII值進行位置替換,用當前字符ASCII值往前數的第47位對應字符替換當前字符,例如當前為小寫字母z,編碼后變成大寫字母K,當前為數字0,編碼后變成符號_。
注意:用於ROT47編碼的字符其ASCII值范圍是33-126(原因是由於0-32以及127與字符表示無關!!)