首页
社区
课程
招聘
[已解决]请教各位老师这个算法的逆算法。
发表于: 2009-12-26 10:22 6863

[已解决]请教各位老师这个算法的逆算法。

2009-12-26 10:22
6863
逆出来一个算法,我对密码学一无所知,问一下各位老师这个算法是什么算法是否可逆。

算法很简单,4个字符ASCII码值为abcd,经过这个算法后算出3个字符。
首先以abcd的值为索引值查表,表如下(全为16进制)

005A1A50  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
005A1A60  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
005A1A70  00 00 00 00 00 00 00 00 00 00 00 3E 00 00 00 3F  ...........>...?
005A1A80  34 35 36 37 38 39 3A 3B 3C 3D 00 00 00 00 00 00  456789:;<=......
005A1A90  00 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E  ......
005A1AA0  0F 10 11 12 13 14 15 16 17 18 19 00 00 00 00 00  .....
005A1AB0  00 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28  . !"#$%&'(
005A1AC0  29 2A 2B 2C 2D 2E 2F 30 31 32 33 00 00 00 00 00  )*+,-./0123.....
005A1AD0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
005A1AE0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
005A1AF0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
005A1B00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ...............

假设查表得到与abcd相对应的4个数为wxyz。
则eax=w+x*2^6+y*2^12+z*2^18(2^12表示2的12次方)
最后得到的3个字符就是eax的前3个字节。

不明白这是什么算法,想了半天也没想出逆算法。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 1022
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
算法已经大概了解了,
请再给出一组明文和密文吧(主要是还不清楚表是怎么查的)
2009-12-26 10:50
0
雪    币: 292
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
表是我直接在od中复制过来的前面的值是地址值,这个数据表如何产生的不知道,程序中它是常量。表从地址005A1A50开始的,w=[005A1A50+a],x=[005A1A50+b],y=[005A1A50+c],z=[005A1A50+d]。a,b,c,d,w,x,y,z都为ASCII码值。
2009-12-26 11:14
0
雪    币: 1022
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
可逆,这个算法是把8位的压缩成6位
如果你知道了被压缩的6位码,通过反查表就能得到原来的8位值。
下面是逆表(注:??表示不可知):
?? 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50
51 52 53 54 55 56 57 58 59 5A 71 72 73 74 75 76
77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86
87 88 89 8A 30 31 32 33 34 35 36 37 38 39 2B 2F
2009-12-26 11:40
0
雪    币: 292
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
确实可逆,你一下就给我点通了,多谢。原来老是想这个数学公式了的逆算法了
2009-12-26 11:54
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
Base64
2009-12-26 12:12
0
雪    币: 292
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
明白了,看来要好好补补密码学了
2009-12-26 12:20
0
雪    币: 1022
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
sessiondiy兄真强,一眼就知道是什么算法~~~
害得我手动填了个逆表~
2009-12-26 13:02
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
9
没什么强不强
大家接触的不同, 看到的'注意到的就不同. 如此而己.
2009-12-26 14:09
0
雪    币: 328
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
sessiondiy的意思翻译成文言文就是:闻道有先后,术业有专攻,如是而已
2009-12-26 18:53
0
雪    币: 292
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哦。又学会了一个英文单词
2009-12-26 20:56
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
看LZ的帖 晕了
再看看老大的帖 再翻回去看看LZ的帖
才发现原来居然竟然是BASE64

我对老大的佩服,有如滔滔江水延绵不绝,又如黄河泛滥一发不可收拾!
2009-12-26 21:12
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
你很水。。。
2009-12-26 22:47
0
游客
登录 | 注册 方可回帖
返回
//