KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

求 土豆文编码规则,我想做成在线版的

[ 12457 查看 / 5 回复 ]

计算时请自觉去掉“土豆滅滅苦”的前缀,这个不是密文 XDD


当时据Prz所说,这个其实就是替换,但是从结果来看肯定是有玩些手段
那么接续之前看雪论坛有人做出的分析,那么有一种猜想就是这个加密是以128位为1块进行的,然后存在一个可逆的函数f(x),每次将一个块带入f(x)求出一个同样为128位的唯一解,而解密过程则是求f(x)的反函数

至于加扰的方式,似乎没有明显的规律,以下是猜测:
1. 加扰的字符存在某种特征(例如高位为1)
2. 扰码可能是根据一个16位整数特征生成的,这个整数可能是密文的头2字节,这个特征数据中每一个位对应密文当中的一个字节,当该位为1时则对应的字节前面加扰,否则不加扰
3. 扰码的字符是使用上述特征码作为种子初始化的伪随机数来进行选择的,可能是rand()%128+127后查表

如果以上条件成立,那么扰码的生成规则就是这样的--
密文各个字节依次为 A B C D E F G H I J K L M N O P
那么扰码特征则为 A B
将字典中所有权重大于127(最高位为1)的字符作为加扰字符,设扰码字符为X
如果A小于127则A前面不加扰,否则就加扰
这时读取头字节数据时就存在两种情况:
1. 读取到了X A ...(A>127)
2. 读取到A ... (A<127)
情况1:高位为1,这一个字符为扰码,有效数据从下一字节开始
情况2:高位为0,这一字节就是有效数据
读取到第一字节后后面的扰码就一目了然,马上就能顺利读取一整块数据,然后调用反函数解密

512字节后加入了压缩,可能就更简单,因为每次数据虽然不同但是定长,只需要每次创建一个随机数,然后用随机数依次异或每一个字节,然后把随机数和密文一起编码返回就能获得良好的效果,压缩的话最常用的就是zlib,简单几句话就能完成压缩

以上推论成立的话那么关键问题就是要扒到映射函数f(x)的真相,然后每个加密字符的权重,所有的数据都能倒推
如果是自己想要开发类似程序的话,那么只要自己设计一个合适的f(x)剩余的就如猫所说肯定能实现
最后编辑公主的猫 最后编辑于 2014-02-09 22:04:37
2

评分次数

    分享 转发
    TOP