hur.cn - 华软网

 热门搜索

一个算法的问题

  作者:未知    来源:网络    更新时间:2011/8/24
char chId[] = "a Key"

char SourceData[1024];
char DestData[1024];

根据chId 通过一定的算法生成SourceData

DestData 的数据已知  

int Key1=0,Key2=0;
for(int i=0;i!=1024;++i)
{
 Key1^=SourceDAta[i];
 Key2^=DestData[i];
}

最终 需要 Key1 == Key2 

怎么计算出 chId 应该是多少
---华软 网友回答---
没看懂~~
---华软网友回复---
引用楼主 saberiii 的回复:
根据chId 通过一定的算法生成SourceData

这个算法必须是可逆的才行。
根据你的描述,可以知道SourceDAta和DestData全部元素相异或的结果为0,要推导chId就要依赖前面所提的算法了。
---华软网友回复---
某种加密算法吧
---华软网友回复---
引用 2 楼 cnzdgs 的回复:
引用楼主 saberiii 的回复:
根据chId 通过一定的算法生成SourceData

这个算法必须是可逆的才行。
根据你的描述,可以知道SourceDAta和DestData全部元素相异或的结果为0,要推导chId就要依赖前面所提的算法了。

好久不见~~
---华软网友回复---
不可逆的只能暴力破解。
能把逆映射搞出来,就破解这个算法了。
---华软网友回复---
路过学习
---华软网友回复---
引用 2 楼 cnzdgs 的回复:
引用楼主 saberiii 的回复:
根据chId 通过一定的算法生成SourceData

这个算法必须是可逆的才行。
根据你的描述,可以知道SourceDAta和DestData全部元素相异或的结果为0,要推导chId就要依赖前面所提的算法了。


谢谢满天星的回答




他加密成密文不是用循环做的,每一个char都有对应的16条汇编,而且数据量巨大,而且还不是在一个函数中加密的,不同操作使用的密文也是从整个密文中抽取一部分用做比较的

1,数据量大,2不是用循环做的,想分析他的算法很困难啊


其实我主要不是问答案的,就是想知道根据已知算法和结果能否求出原KEY是什么
---华软网友回复---
看你这描述看不出任何能求出chId的可能啊
---华软网友回复---
没看懂啊
---华软网友回复---
知道是什么加密不?
---华软网友回复---
引用 7 楼 saberiii 的回复:
其实我主要不是问答案的,就是想知道根据已知算法和结果能否求出原KEY是什么

我前面已经回答你了,算法必须是可逆的才行,至于算法是否可逆,可以通过数学方法来证明。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。