已知加密编码和解密编码,如何求解密算法?

时间:2022-09-24 07:57:44
解密字符:彩虹岛
解密编码:B2 CA BA E7 B5 BA (彩虹岛的16进制)
加密编码:C3 F5 D2 2C 37 F6

解密字符:蘑菇村西入口
解密编码:C4 A2 B9 BD B4 E5 CE F7 C8 EB BF DA
加密编码:BB 2C 6C 29 FD CD D2 23 CB FB 4C F9

解密字符:小蜗牛
解密编码:D0 A1 CE CF C5 A3
加密编码:A5 F6 BC 2D F7 D8

解密字符:射手村
解密编码:C9 E4 CA D6 B4 E5
加密编码:AE F6 E0 C8 FD CD

从以上的信息中能找出解密算法吗?就是已知加密编码:C3 F5 D2 2C 37 F6,如何算出解密字符?

16 个解决方案

#1


帮顶

#2


up

#3


明文与密码的对应太少!

就好象现在流行的面试题:1、2、8、10、9,接下来的数字是几?有无穷的解。

#4


加密算法不是很难,因为:
蘑菇村,射手村 中的村都加密为:FD   CD 
可以猜测,加密算法是单字节加密或者两字节加密,可能与位置相关。只要楼主在搜集更多的
明文密文对,找出算法不难。

#5


的确不难,看上去像是256个字符的置换变换。
多选择一些数据,最好将所有256个字符作为输入,看看分别对应的输出是什么,就有了一个置换表。
然后检查一下,使用这个置换表是否就可以了。

#6


ca ce出现了多次,加密后的内容不一致,不会是单字节的置换;

双字节的置换需要太大的映射表,也感觉不可能;

#7


楼主的16进制明文是怎么来的?程序里的还是自己从中文生成的?如果是自己生成的,可能因为编码不同而并不是"真正"的明文,所以有楼上说的问题。

#8


可以先产生大量数据检验一下是否是双字节一一映射。
虽然实际上不会用双字节映射产生数据,但是作为破译过程,可以通过这种方法。
此外,破译一个算法是无法像楼主这样,简单的提供少量的数据就可以解决的,必须提供大量的数据才行。

关于这个,我也凑凑热闹,让大家破译一个我自己写的程序里用到的算法
http://bbs.emath.ac.cn/thread-55-1-1.html

#9


再贴几个明文与密码,明文与密码绝对正确。



增加4个(1列)装备栏的空格\n需要600点券。
D4 F6 BC D3 34    B8 F6 A3 A8 31    C1 D0 A3 A9 D7 B0 B1 B8 C0 B8 B5 C4 BF D5 B8 F1 5C    6E    D0 E8 D2 AA 36    30    30    B5 E3 C8 AF A1 A3
34 F2 0B F8 98 AA 87 E4 A6 55 9E AA A7 F8 B8 55 77 22 B4 F3 BB C2 31 DC CC D0 8B C2 E4 AA D7 AA BA 3D 3A 23 8A AA 8D AA 8E AA 06 DA F8 F8 C3 9A
                                 
MP 10 消耗后 30秒恢复 HP 24
4D    50    20    31    30    20    CF FB BA C4 BA F3 20    33    30    C3 EB BB D6 B8 B4 20    48    50    20    32    34
E7 AA FB AA 8C AA 9C AA 9E AA 8F AA 38 C7 A6 2A BC FE 93 AA 87 AA 85 AA 64 D3 D5 CA B5 F3 99 AA F2 AA EB AA 9C AA 8F AA 8A AA
                                                                                                
消耗HP15和MP15, 持续150秒          
CF FB BA C4 48    50    31    35    BA CD 4D    50    31    35    2C    20    B3 D6 D0 F8 31    35    30    C3 EB
22 C7 BC 2A E4 AA FD AA 9F AA 9A AA 3C FE FC AA E2 AA 82 AA 81 AA 99 AA 96 AA B6 C9 55 D4 88 AA 8F AA 8B AA 6E D3

消耗HP20和MP20, 持续100秒
CF FB BA C4 48    50    32    30    BA CD 4D    50    32    30    2C    20    B3 D6 D0 F8 31    30    30    C3 EB
22 C7 BC 2A E4 AA FD AA 9C AA 9F AA 3C FE FC AA E2 AA 81 AA 84 AA 99 AA 96 AA B6 C9 55 D4 88 AA 8A AA 8B AA 6E D3

消耗HP21和MP21, 持续90秒
CF FB BA C4 48    50    32    31    BA CD 4D    50    32    31    2C    20    B3 D6 D0 F8 39    30    C3 EB
22 C7 BC 2A E4 AA FD AA 9C AA 9E AA 3C FE FC AA E2 AA 81 AA 85 AA 99 AA 96 AA B6 C9 55 D4 80 AA 8A AA 69 D3

#10


KK表示为空


增加4个(1列)装备栏的空格\n需要600点券。
D4 F6 BC D3 34 KK B8 F6 A3 A8 31 KK C1 D0 A3 A9 D7 B0 B1 B8 C0 B8 B5 C4 BF D5 B8 F1 5C KK 6E KK D0 E8 D2 AA 36 KK 30 KK 30 KK B5 E3 C8 AF A1 A3
34 F2 0B F8 98 AA 87 E4 A6 55 9E AA A7 F8 B8 55 77 22 B4 F3 BB C2 31 DC CC D0 8B C2 E4 AA D7 AA BA 3D 3A 23 8A AA 8D AA 8E AA 06 DA F8 F8 C3 9A
                                 
MP 10 消耗后 30秒恢复 HP 24
4D KK 50 KK 20 KK 31 KK 30 KK 20 KK CF FB BA C4 BA F3 20 KK 33 KK 30 KK C3 EB BB D6 B8 B4 20 KK 48 KK 50 KK 20 KK 32 KK 34 KK
E7 AA FB AA 8C AA 9C AA 9E AA 8F AA 38 C7 A6 2A BC FE 93 AA 87 AA 85 AA 64 D3 D5 CA B5 F3 99 AA F2 AA EB AA 9C AA 8F AA 8A AA
                                                                                                
消耗HP15和MP15, 持续150秒          
CF FB BA C4 48 KK 50 KK 31 KK 35 KK BA CD 4D KK 50 KK 31 KK 35 KK 2C KK 20 KK B3 D6 D0 F8 31 KK 35 KK 30 KK C3 EB
22 C7 BC 2A E4 AA FD AA 9F AA 9A AA 3C FE FC AA E2 AA 82 AA 81 AA 99 AA 96 AA B6 C9 55 D4 88 AA 8F AA 8B AA 6E D3

消耗HP20和MP20, 持续100秒
CF FB BA C4 48 KK 50 KK 32 KK 30 KK BA CD 4D KK 50 KK 32 KK 30 KK 2C KK 20 KK B3 D6 D0 F8 31 KK 30 KK 30 KK C3 EB
22 C7 BC 2A E4 AA FD AA 9C AA 9F AA 3C FE FC AA E2 AA 81 AA 84 AA 99 AA 96 AA B6 C9 55 D4 88 AA 8A AA 8B AA 6E D3

消耗HP21和MP21, 持续90秒
CF FB BA C4 48 KK 50 KK 32 KK 31 KK BA CD 4D KK 50 KK 32 KK 31 KK 2C KK 20 KK B3 D6 D0 F8 39 KK 30 KK C3 EB
22 C7 BC 2A E4 AA FD AA 9C AA 9E AA 3C FE FC AA E2 AA 81 AA 85 AA 99 AA 96 AA B6 C9 55 D4 80 AA 8A AA 69 D3

#11


研究出非中文字符解密了。
第一个字节与$AA与或,第二个字节与$AB与或,依此类推:
原字串: FA  D9  C3  DD  CB  DD  C4  C8
与或值: AA  AB  AC  AD  AE  AF  B0  B1
结  果: 50  72  6F  70  65  72  74  79

中文的两个字节算一个字AA,隔两个字节+1变AB

#12


持续100秒,消耗MP25
B3 D6 D0 F8 31 KK 30 KK 30 KK C3 EB 2C KK CF FB BA C4 4D KK 50 KK 32 KK 35 KK                                        
AB C9 46 D4 9D AA 9D AA 9E AA 7D D3 9C AA 39 C7 A5 2A FE AA E4 AA 87 AA 83 AA 

#13


晕,楼主研究这个干嘛?改装备属性?

#14


不是吧?晕了!!                  

#15


找到游戏中加密的CALL,把相关CALL都贴出来,让ASM高手来分析分析。,或复制到你程序中直接用

#16


以后需再关注,现在先帮你顶一下

#1


帮顶

#2


up

#3


明文与密码的对应太少!

就好象现在流行的面试题:1、2、8、10、9,接下来的数字是几?有无穷的解。

#4


加密算法不是很难,因为:
蘑菇村,射手村 中的村都加密为:FD   CD 
可以猜测,加密算法是单字节加密或者两字节加密,可能与位置相关。只要楼主在搜集更多的
明文密文对,找出算法不难。

#5


的确不难,看上去像是256个字符的置换变换。
多选择一些数据,最好将所有256个字符作为输入,看看分别对应的输出是什么,就有了一个置换表。
然后检查一下,使用这个置换表是否就可以了。

#6


ca ce出现了多次,加密后的内容不一致,不会是单字节的置换;

双字节的置换需要太大的映射表,也感觉不可能;

#7


楼主的16进制明文是怎么来的?程序里的还是自己从中文生成的?如果是自己生成的,可能因为编码不同而并不是"真正"的明文,所以有楼上说的问题。

#8


可以先产生大量数据检验一下是否是双字节一一映射。
虽然实际上不会用双字节映射产生数据,但是作为破译过程,可以通过这种方法。
此外,破译一个算法是无法像楼主这样,简单的提供少量的数据就可以解决的,必须提供大量的数据才行。

关于这个,我也凑凑热闹,让大家破译一个我自己写的程序里用到的算法
http://bbs.emath.ac.cn/thread-55-1-1.html

#9


再贴几个明文与密码,明文与密码绝对正确。



增加4个(1列)装备栏的空格\n需要600点券。
D4 F6 BC D3 34    B8 F6 A3 A8 31    C1 D0 A3 A9 D7 B0 B1 B8 C0 B8 B5 C4 BF D5 B8 F1 5C    6E    D0 E8 D2 AA 36    30    30    B5 E3 C8 AF A1 A3
34 F2 0B F8 98 AA 87 E4 A6 55 9E AA A7 F8 B8 55 77 22 B4 F3 BB C2 31 DC CC D0 8B C2 E4 AA D7 AA BA 3D 3A 23 8A AA 8D AA 8E AA 06 DA F8 F8 C3 9A
                                 
MP 10 消耗后 30秒恢复 HP 24
4D    50    20    31    30    20    CF FB BA C4 BA F3 20    33    30    C3 EB BB D6 B8 B4 20    48    50    20    32    34
E7 AA FB AA 8C AA 9C AA 9E AA 8F AA 38 C7 A6 2A BC FE 93 AA 87 AA 85 AA 64 D3 D5 CA B5 F3 99 AA F2 AA EB AA 9C AA 8F AA 8A AA
                                                                                                
消耗HP15和MP15, 持续150秒          
CF FB BA C4 48    50    31    35    BA CD 4D    50    31    35    2C    20    B3 D6 D0 F8 31    35    30    C3 EB
22 C7 BC 2A E4 AA FD AA 9F AA 9A AA 3C FE FC AA E2 AA 82 AA 81 AA 99 AA 96 AA B6 C9 55 D4 88 AA 8F AA 8B AA 6E D3

消耗HP20和MP20, 持续100秒
CF FB BA C4 48    50    32    30    BA CD 4D    50    32    30    2C    20    B3 D6 D0 F8 31    30    30    C3 EB
22 C7 BC 2A E4 AA FD AA 9C AA 9F AA 3C FE FC AA E2 AA 81 AA 84 AA 99 AA 96 AA B6 C9 55 D4 88 AA 8A AA 8B AA 6E D3

消耗HP21和MP21, 持续90秒
CF FB BA C4 48    50    32    31    BA CD 4D    50    32    31    2C    20    B3 D6 D0 F8 39    30    C3 EB
22 C7 BC 2A E4 AA FD AA 9C AA 9E AA 3C FE FC AA E2 AA 81 AA 85 AA 99 AA 96 AA B6 C9 55 D4 80 AA 8A AA 69 D3

#10


KK表示为空


增加4个(1列)装备栏的空格\n需要600点券。
D4 F6 BC D3 34 KK B8 F6 A3 A8 31 KK C1 D0 A3 A9 D7 B0 B1 B8 C0 B8 B5 C4 BF D5 B8 F1 5C KK 6E KK D0 E8 D2 AA 36 KK 30 KK 30 KK B5 E3 C8 AF A1 A3
34 F2 0B F8 98 AA 87 E4 A6 55 9E AA A7 F8 B8 55 77 22 B4 F3 BB C2 31 DC CC D0 8B C2 E4 AA D7 AA BA 3D 3A 23 8A AA 8D AA 8E AA 06 DA F8 F8 C3 9A
                                 
MP 10 消耗后 30秒恢复 HP 24
4D KK 50 KK 20 KK 31 KK 30 KK 20 KK CF FB BA C4 BA F3 20 KK 33 KK 30 KK C3 EB BB D6 B8 B4 20 KK 48 KK 50 KK 20 KK 32 KK 34 KK
E7 AA FB AA 8C AA 9C AA 9E AA 8F AA 38 C7 A6 2A BC FE 93 AA 87 AA 85 AA 64 D3 D5 CA B5 F3 99 AA F2 AA EB AA 9C AA 8F AA 8A AA
                                                                                                
消耗HP15和MP15, 持续150秒          
CF FB BA C4 48 KK 50 KK 31 KK 35 KK BA CD 4D KK 50 KK 31 KK 35 KK 2C KK 20 KK B3 D6 D0 F8 31 KK 35 KK 30 KK C3 EB
22 C7 BC 2A E4 AA FD AA 9F AA 9A AA 3C FE FC AA E2 AA 82 AA 81 AA 99 AA 96 AA B6 C9 55 D4 88 AA 8F AA 8B AA 6E D3

消耗HP20和MP20, 持续100秒
CF FB BA C4 48 KK 50 KK 32 KK 30 KK BA CD 4D KK 50 KK 32 KK 30 KK 2C KK 20 KK B3 D6 D0 F8 31 KK 30 KK 30 KK C3 EB
22 C7 BC 2A E4 AA FD AA 9C AA 9F AA 3C FE FC AA E2 AA 81 AA 84 AA 99 AA 96 AA B6 C9 55 D4 88 AA 8A AA 8B AA 6E D3

消耗HP21和MP21, 持续90秒
CF FB BA C4 48 KK 50 KK 32 KK 31 KK BA CD 4D KK 50 KK 32 KK 31 KK 2C KK 20 KK B3 D6 D0 F8 39 KK 30 KK C3 EB
22 C7 BC 2A E4 AA FD AA 9C AA 9E AA 3C FE FC AA E2 AA 81 AA 85 AA 99 AA 96 AA B6 C9 55 D4 80 AA 8A AA 69 D3

#11


研究出非中文字符解密了。
第一个字节与$AA与或,第二个字节与$AB与或,依此类推:
原字串: FA  D9  C3  DD  CB  DD  C4  C8
与或值: AA  AB  AC  AD  AE  AF  B0  B1
结  果: 50  72  6F  70  65  72  74  79

中文的两个字节算一个字AA,隔两个字节+1变AB

#12


持续100秒,消耗MP25
B3 D6 D0 F8 31 KK 30 KK 30 KK C3 EB 2C KK CF FB BA C4 4D KK 50 KK 32 KK 35 KK                                        
AB C9 46 D4 9D AA 9D AA 9E AA 7D D3 9C AA 39 C7 A5 2A FE AA E4 AA 87 AA 83 AA 

#13


晕,楼主研究这个干嘛?改装备属性?

#14


不是吧?晕了!!                  

#15


找到游戏中加密的CALL,把相关CALL都贴出来,让ASM高手来分析分析。,或复制到你程序中直接用

#16


以后需再关注,现在先帮你顶一下