关于加密的和反汇编的
1)如果加密的时候,假设明文有256个数据,然后我每个数据的密钥各不相同,但算法相同,比如x1=key1*100;x2=key2*100;.....xn=keyn*100...
1)如果加密的时候,假设明文有256个数据,然后我每个数据的密钥各不相同,但算法相同, 比如 x1=key1*100; x2=key2*100; ..... xn=keyn*100; 那这样不是破解一个月都猜不完?但是这样的密码的安全性真的很高吗? 2)如何防止别人反汇编用C语言编写的加密程序,花指令怎么用? goto a; printf("xxxxx"); a: printf("yyyyy"); return 21; 这个可以起到一定得作用吗? 3)跟我讲讲加密的原理,用通俗的语言.书上的很多看不懂 3个问题讲的好的我追加50分!
展开
展开全部
问题1:理论上是这样密钥长度增加会增加加密算法的强度,但是你的方法密钥长度增加一倍攻击难度也只提高了一倍,强度增加的太少了。如果你的算法就是简单的乘法的话,不用一个月几分钟就可以破解。建议采用DES,AES等成熟算法。 问题2:这的这种花指令写法无任何意义,一个好的C编译器会直接把 printf("xxxxx");优化掉不产生任何代码。花指令必须是汇编级别的。一个简单的例子,修改你的程序如下,你在反汇编看看。 #define JUNK_CODE_JMP1(xxx) __asm jl $+12 __asm jmp $+6 __asm _emit xxx JUNK_CODE_JMP1(0x55); printf("xxxxx"); JUNK_CODE_JMP1(0xaa); printf("yyyyy"); JUNK_CODE_JMP1(0xcc); return 21; 问题3:这个一句两句讲不完,推荐你一本书,写的很通俗,也很有趣。 书名:应用密码学(协议算法与C源程序) 【出版社】 机械工业出版社 【书号】 7111075889
展开全部
你的key1...keyn是原文吧,X1...Xn是密文吧!首先你对密钥理解的不够清楚,你的意图是每个数据*100,密钥算法(密钥只是算法的一种形象说法)不同?解密就是/100,如果得知其中任何2对以上数据,是很容易推算的。加密就是将数据以另一种形式表现,将原始数据带入某个函数,得出结果就是另一种形式,但这个函数可能是很复杂的,这是数学家关心的。 关于花指令就是误导反汇编软件的,不知道上述生成啥汇编啊?我不太了解,看上面有跳转语句,应该汇编后也生成跳转,起一定作用。
记得采纳啊
记得采纳啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |