他可以把一段字符串A通過特定的加密算法變成字符串B
並且單憑你的肉眼是無法通過B來反推出A來
但通過逆推算法便能很迅速的將字符串B轉換爲字符串A
這就是加密/解密字符串的算法。
簡單的來說,Base64編碼的特點就是
加密解密速度快,並且須通過特定算法解密。
下面這段代碼就是一段通過Base64加密後的字符串
5qyi6L+O5p2l5Yiw5LuY552/55qE6YOo6JC95qC844CC
通過肉眼你根本無法知道這段代碼的意義,以下則是解密後的字符串
歡迎來到付睿的部落格。
下面開始說說實質性的東西。
Base64是較爲常見的一種用於傳輸8Bit字節代碼的編碼方式之一,他要求把3個8Bit的字節轉換爲4個6Bit的字節,既3×8=4×6=24,然後把6Bit高位用0補成8Bit,使得3個8bit原文變成4個8Bit字節的代碼,所以說轉換後的字符串會比原字符串長。
舉個例子(僅僅是個例子e113)
原文爲 qweqweqw asdasdas zxczxczx
轉換後 00qweqwe 00qwasda 00sdaszx 00czxczx
轉換後的字符串對應一個編碼表,即Base64編碼的碼錶(摘自RFC2045)
Table 1: The Base64 Alphabet
Value Encoding Value Encoding Value Encoding Value Encoding
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y
如此一來便能使4個8Bit的譯文有對應的字符代表。
那麼再來看一個實際的例子(2進製表示)
轉換前 10101101 10111010 01110110
轉換後 00101011 00011011 00101001 00110110
十進制 43 27 41 54
對應值 r b p 2
所以說編碼後字符串爲 rbp2
如此也可以逆向推算出原文。
但是,我們也可能遇到一個問題
就是如果原文字節數是10,11或者13該怎麼辦?(非3整數倍)
Base64編碼是這樣來解決的:
原文字節不夠的地方全部用0來補足,轉換時用=代替。
但是編碼後的字符串不會含有2個以上的=,因爲等號個數=原文字節數 mod 3
ok,這就是簡單的Base64編碼的介紹。
當然,我是看了老羅的文章後才瞭解到的。
接下來,說說專用鏈和Base64的關係。
其實呢,說白了專用鏈就是使用了Base64編碼,因爲我之前提到的Base64的特點,他的高速的加密以及解密。
接下來我將是用一個軟件的下載地址來做示範,講解3種程序的專用鏈。
例子的下載地址是(此鏈接不存在,僅作爲演示)
http://www.free-z.net/1.rar
迅雷專用鏈
迅雷的專用鏈是在原地址的前面加“AA”,最後加“ZZ”後再是用Base64加密
即使用Base64編碼如下字符串
AAhttp://www.free-z.net/1.rarZZ
編碼後字符串爲
QUFodHRwOi8vd3d3LmZyZWUtei5uZXQvMS5yYXJaWg==
迅雷專用鏈即在此字符串前加thunder://,即
thunder://QUFodHRwOi8vd3d3LmZyZWUtei5uZXQvMS5yYXJaWg==
快車專用鏈
快車的專用鏈是在原地址的前面和後面都加上“[FLASHGET]”後再是用Base64加密
即使用Base64編碼如下字符串
http://www.free-z.net/1.rar
編碼後字符串爲
W0ZMQVNIR0VUXWh0dHA6Ly93d3cuZnJlZS16Lm5ldC8xLnJhcltGTEFTSEdFVF0=
快車專用鏈即在此字符串前加Flashget://,尾部加&freeznet,即
Flashget://W0ZMQVNIR0VUXWh0dHA6Ly93d3cuZnJlZS16Lm5ldC8xLnJhcltGTEFTSEdFVF0=&freeznet
騰訊旋風專用鏈
騰訊旋風專用鏈是最爲簡單的,直接將原地址Base64編碼即可,即
對字符串http://www.free-z.net/1.rar直接編碼,可獲得
aHR0cDovL3d3dy5mcmVlLXoubmV0LzEucmFy
然後在此字符串之前加qqdl://即可,即
qqdl://aHR0cDovL3d3dy5mcmVlLXoubmV0LzEucmFy