问题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
有24位的和32位的