常见密码归纳(入门级)
**
常見密碼歸納(入門級)
**
前言:前幾天的比賽發(fā)現(xiàn)密碼忘得有點(diǎn)多,今天總結(jié)一下吧。方便自己以后看看。
常見密碼:
1:base密碼(base16 ,32,64,58 ,85 ,100);:
2:ROT密碼:ROT 5/13/18/47;
3:凱撒密碼+變異凱撒;
4:柵欄密碼,柵欄密碼W型;
5:豬圈密碼;
6:維吉尼亞;
7: 特殊密碼:摩斯密碼,培根密碼,與佛論禪,百家姓,Uuencode編碼轉(zhuǎn)換
一:base家族:
base算是最常見的密碼之一,經(jīng)常用到的base64/32/16,少見的有58,85,100,92,93。說一下各個(gè)的特點(diǎn)吧。
base64:
實(shí)例:YWRtaW4tcm9vdA==
特點(diǎn):一般情況下密文尾部都會有兩個(gè)等號,明文很少的時(shí)候則沒有;
加密原理:
Base64編碼要求把3個(gè)8位字節(jié)(38=24)轉(zhuǎn)化為4個(gè)6位的字節(jié)(46=24),之后在6位的前面補(bǔ)兩個(gè)0,形成8位一個(gè)字節(jié)的形式。 如果剩下的字符不足3個(gè)字節(jié),則用0填充,輸出字符使用‘=’,因此編碼后輸出的文本末尾可能會出現(xiàn)1或2個(gè)‘=’。
base32:
示例:GEZDGNBVGY3TQOJQGE======
特點(diǎn):超過十位會有很多等號,一般大于三個(gè);
base16:
示例:61646D696E
特點(diǎn):它的特點(diǎn)是沒有等號并且數(shù)字要多于字母
下面的沒有以上三種常見
base58
示例:**6tmHCZvhgfNjQu**
特點(diǎn):它最大的特點(diǎn)是沒有等號
Base58是用于比特幣(Bitcoin)中使用的一種獨(dú)特的編碼方式,主要用于產(chǎn)生Bitcoin的錢包地址。
相比Base64,Base58不使用數(shù)字"0",字母大寫"O",字母大寫"I",和字母小寫"l",以及"+“和”/"符號。
比特幣的Base58字母表:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
base85:
示例:@:X4hDWe0rkE(G[OdP4CT]N#
特點(diǎn):奇怪的字符比較多,但是很難出現(xiàn)等號。
base100:
示例:👘👛👤👠👥
特點(diǎn):一堆Emoji表情
base小結(jié)::看到密文后,先看有沒有等號
有等號,考慮64和32,等號特別多≥3個(gè)是32,否則64。
沒等號,如果由數(shù)字和純字母(大寫)組成且數(shù)字多,大概率16;字母大小寫都有,考慮58;
有@#等符號,直接base85;有enjoy表情,base100.
至于base91,92,這兩個(gè)有點(diǎn)不常見,base91至少可以百度到,base92只能用下載的工具包或者自己跑腳本了。
base64/32/16解碼網(wǎng)站:https://www.qqxiuzi.cn/bianma/base64.htm
base58/85/91/100解碼網(wǎng)站:
http://www.atoolbox.net/Category.php?Id=27
注:雖然也包括64解密,但是沒有最上邊的好用,有時(shí)候解不出來。
遇到base92自求多福吧,我也只有一個(gè)工具包能解92而已
ROT密碼:
rot密碼其實(shí)可以看作是凱撒密碼的一種變式本質(zhì)都是移位運(yùn)算
rot密碼按種類大致分為以下幾類:
rot5:
原理:
只將字符串中的數(shù)字進(jìn)行加密,步數(shù)為5,同時(shí)在0-9十個(gè)數(shù)字進(jìn)行循環(huán),如1在rot5加密后為6,而6在rot5加密后為1。
特點(diǎn):只對數(shù)字進(jìn)行編碼,用當(dāng)前數(shù)字往前數(shù)的第5個(gè)數(shù)字替換當(dāng)前數(shù)字,例如當(dāng)前為0,編碼后變成5,當(dāng)前為1,編碼后變成6,以此類推順序循環(huán)。
rot13
只將字符串中的字母進(jìn)行加密,步數(shù)為13,加密方式上最接近凱撒密碼,分別在A-Z或a-z之間循環(huán),如A在rot13加密后為N,Z在rot13加密后為M
特點(diǎn):
只對字母進(jìn)行編碼,用當(dāng)前字母往前數(shù)的第13個(gè)字母替換當(dāng)前字母,例如當(dāng)前為A,編碼后變成N,當(dāng)前為B,編碼后變成O,以此類推順序循環(huán)
rot18:字面意思(5+13=18) 即將上述兩種加密方式結(jié)合,分別對數(shù)字和字母進(jìn)行相應(yīng)的操作
特點(diǎn):由字母數(shù)字組成
**rot47:**對數(shù)字、字母、常用符號進(jìn)行編碼,按照它們的ASCII值進(jìn)行位置替換,用當(dāng)前字符ASCII值往前數(shù)的第47位對應(yīng)字符替換當(dāng)前字符,例如當(dāng)前為小寫字母z,編碼后變成大寫字母K,當(dāng)前為數(shù)字0,編碼后變成符號_。用于ROT47編碼的字符其ASCII值范圍是33-126。
特點(diǎn):對數(shù)字,字母,符號加密
ROT:小結(jié):純數(shù)字rot5;純字母rot13;數(shù)字+字母rot18;數(shù)字+字母+符號rot47
解碼網(wǎng)站:https://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php
3 凱撒密碼
凱撒密碼,最典型的古典密碼,由密文和數(shù)字秘鑰組成。
原理:此為一種位移加密手段,只對26個(gè)(大小寫)字母進(jìn)行位移加密,規(guī)則相當(dāng)簡單,容易被破解。
特點(diǎn):看到“{”前有四個(gè)(flag格式)或兩個(gè)(SL格式)字母八成就是凱撒了。
解碼網(wǎng)站https://www.qqxiuzi.cn/bianma/kaisamima.php
變異凱撒,只能跑腳本了。
c語言
java
public static void main(String[] args) {String ciphertext = "afZ_r9VYfScOeO_UL^RWUc";char[] plaintext = new char[ciphertext.length()];for(int i = 0; i < ciphertext.length(); i++){ //注意i是從0開始的,所以是5+iplaintext[i] = (char)(((int)ciphertext.charAt(i) + 5 + i) % 128);}for (char i: plaintext) {System.out.print(i);}}Python:
ciphertext = 'afZ_r9VYfScOeO_UL^RWUc' j = 5 for i in ciphertext:print(chr(ord(i) + j), end='')j += 1柵欄密碼:
普通型
原理
柵欄密碼(Rail fence Cipher)基礎(chǔ)型加密方式,是一種簡單的移動字符位置的加密方法,首先把加密的明文分成N個(gè)一組,然后把每組的第1、第2、第M個(gè)字符連起來,形成無規(guī)律的密文字符串。
例如字符串“123456789abc”,首先將字符串分成3組,如下排列:
1234
5678
9abc
依次取每一組字符,組成加密后密文:“15926a37b48c”。
w型
柵欄密碼(Rail fence Cipher),擴(kuò)展變種W型,采用先把明文類似"W"形狀進(jìn)行排列,然后再按欄目順序1-N,取每一欄的所有字符值,組成加密后密文。
比如字符串“123456789”,采用欄目數(shù)為3的時(shí),明文將采用如下排列:
1—5—9
-2-4-6-8-
–3----7–
取每一欄所有字符串,組成加密后密文:“159246837”。
解碼網(wǎng)站:http://www.atoolbox.net/Category.php?Id=27
豬圈密碼
對著翻譯即可(注意大小寫)
維吉尼亞
可以說是凱撒密碼的加強(qiáng)版,引入了密鑰
原理太難解釋就跳過了
示例:fmcg{iglmq_wptd_123}
特點(diǎn):有字母秘鑰,滿足用凱撒的格式但解不出來就是他。
PPS:秘鑰一般需要自己解出來,秘鑰劃重點(diǎn)。
特殊密碼
1 :與佛論禪+與熊論道
特點(diǎn):就是你看不懂的佛語
解碼鏈接:http://hi.pcmoe.net/index.html
2: 培根密碼
特點(diǎn):ABABABABABAABB只由大寫AB組成。
解碼鏈接:https://tool.bugku.com/peigen/
3:摩斯密碼
特點(diǎn):三杠一點(diǎn),沒啥說的
用處廣泛,有時(shí)候與音頻題結(jié)合使用
解碼網(wǎng)站:http://www.all-tool.cn/Tools/morse/
4:百家姓
特點(diǎn):不要多說當(dāng)你看到一串百家姓的時(shí)候多半就是這個(gè)暗號了
當(dāng)他解密的的時(shí)候前面會多一串固定字符
解碼網(wǎng)站:https://api.dujin.org/baijiaxing/
5:Uuencode編碼轉(zhuǎn)換
Uuencode是二進(jìn)制信息和文字信息之間的轉(zhuǎn)換編碼,也就是機(jī)器和人眼識讀的轉(zhuǎn)換。Uuencode編碼方案常見于電子郵件信息的傳輸,目前已被多用途互聯(lián)網(wǎng)郵件擴(kuò)展(MIME)大量取代。
原理:Uuencode將輸入文字以每三個(gè)字節(jié)為單位進(jìn)行編碼,如此重復(fù)進(jìn)行。如果最后剩下的文字少于三個(gè)字節(jié),不夠的部份用零補(bǔ)齊。這三個(gè)字節(jié)共有24個(gè)Bit,以6-bit為單位分為4個(gè)群組,每個(gè)群組以十進(jìn)制來表示所出現(xiàn)的數(shù)值只會落在0到63之間。將每個(gè)數(shù)加上32,所產(chǎn)生的結(jié)果剛好落在ASCII字符集中可打印字符(32-空白…95-底線)的范圍之中。
Uuencode編碼每60個(gè)將輸出為獨(dú)立的一行(相當(dāng)于45個(gè)輸入字節(jié)),每行的開頭會加上長度字符,除了最后一行之外,長度字符都應(yīng)該是“M”這個(gè)ASCII字符(77=32+45),最后一行的長度字符為32+剩下的字節(jié)數(shù)目這個(gè)ASCII字符。
解碼鏈接:https://www.qqxiuzi.cn/bianma/uuencode.php
總結(jié)
以上是生活随笔為你收集整理的常见密码归纳(入门级)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据导论章节答案_智慧树APP大数据导
- 下一篇: 变频器基础:变频器工作原理与常用功能