凯撒方阵

虾米网在flash网页播放器中加密了歌曲链接,其中使用到了凯撒方阵(当年觉得好NB啊)。转帖一篇虾米音乐文件绝对地址解析,原作者反编译了虾米的flash网页播放器,并且介绍了解密过程。

下面简单地介绍一下凯撒方阵的加密原理和过程。

首先根据字符串长度先选定一个数字n, 然后把原始字符串在一个n行的方阵中从上往下、从左往右写。加密字符串的第一位是选定的数字n,接下来按从左往右、从上往下的顺序把方阵中的字符写下来,如果方阵的最后没有写满的话,最后要写下空位的个数m。

举例如下。

虾米网的一个歌曲下载链接是这样的:

http://f1.xiami.net/23259/371119/14%201769402050_1357018.mp3

先选定数字n=8。把0替换成^,然后进行url encode:

http%3A%2F%2Ff1.xiami.net%2F23259%2F371119%2F14%252%5E17694%5E2%5E5%5E_1357%5E18.mp3

然后把该字符串写在行数为8的方阵里,从上往下、从左往右,最后要写上空位的个数m。该字符串长度为84,m = n - (84 + 1) % n =3 。 出现1的原因是m本身也占一个位置。

h2xt912653.
tFi%%959E5m
t%a22%2457p
p2mFF2%%%%3
%Fi23F55553
3f.371EEEE
A1n21412_1
%.e51%7%18

然后按从左往右、从上往下顺序添加到加密字符串,并在开头加上n:

8h2xt912653.tFi%%959E5mt%a22%2457pp2mFF2%%%%3%Fi23F55553f.371EEEEA1n21412_1%.e51%7%18

加密完成。

分享