- A+
GCV15/bVem29Cu9CiBpP+w
GCV15/bVem29Cu9CiBpP+w
E5Ia47UWnXs19vyWWsjKbg
Q3GN6LRsX/ba1eJUEQqLeA
Dhvt8khDDmpERqXcsUhtWQ
这是前5条数据, 长度都是22字节, 等长 -> 目测应该是某种hash;
至少, cmd5认识这玩意;
咱们今天的目的是了解下这种加密是怎么来的, 走个流程熟悉熟悉;
用第三条数据当示范:
可能E5Ia47UWnXs19vyWWsjKbg这么看看不出什么效果,
那我们换个姿势看: E5Ia47UWnXs19vyWWsjKbg==
密文长度为22, 22 mod 3 ≡ 1, 补俩=, 使其模3为0, 这就是base64;
不过有人会问, 长的像又不表示这就是base64:
解出来就是这种奇葩了;
下面就走个流程, 看看怎么把E5Ia47UWnXs19vyWWsjKbg还原成出来:
先列个东西, 我去年买的表, 等会要用:
00 A 16 Q 32 g 48 w
01 B 17 R 33 h 49 x
02 C 18 S 34 i 50 y
03 D 19 T 35 j 51 z
04 E 20 U 36 k 52 0
05 F 21 V 37 l 53 1
06 G 22 W 38 m 54 2
07 H 23 X 39 n 55 3
08 I 24 Y 40 o 56 4
09 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /
① 把E5Ia47UWnXs19vyWWsjKbg根据上面的表还原出来数值: 04 57 08 26 56 59 20 22 39 23 44 53 61 47 50 22
② 把04 57 08 26 56 59 20 22 39 23 44 53 61 47 50 22转成Bin值:
04 00000100
57 00111001
08 00001000
26 00011010
56 00111000
59 00111011
20 00010100
22 00010110
39 00100111
23 00010111
44 00101100
53 00110101
61 00111101
47 00101111
50 00110010
22 00010110
22 00010110
44 00101100
35 00100011
10 00001010
27 00011011
32 00100000
③ 一共有22个, 前21个把开头的00去掉, 最后一个除了去掉开头的00还要去掉末尾的0000得到这个:
00010011 10010010 00011010 11100011 10110101 00010110 10011101 01111011 00110101 11110110 11111100 10010110 01011010 11001000 11001010 01101110
00010011 13
10010010 92
00011010 1A
11100011 E3
10110101 B5
00010110 16
10011101 9D
01111011 7B
00110101 35
11110110 F6
11111100 FC
10010110 96
01011010 5A
11001000 C8
11001010 CA
01101110 6E
⑤ 最后得到: 13921AE3B5169D7B35F6FC965AC8CA6E
这个够眼熟了吧? 32位的自己反查吧...
其实我不懂, 上面都是我瞎编的, 实在编不下去了;
P.S. 这种MD5(d_Base64)的方式在asp.net的Membership中自带了;
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫