看!我写的关于“简单异或”加密的破解分析演示程序!

简单异或实际上是非常的危险的,这个知识是在书上看到的。最近跟某位朋友进行了这方面的争论,因此我突然对这个问题非常感兴趣。其实之前我也没有任何密码学分析的经验,更没有写过相关的程序。今天也就花了一天的时间,就把整个破解程序给写出来了。
这个是那位朋友提出来的算法的核心:
ExpandedBlockStart.gif ContractedBlock.gif char  g_szSeed[ 5 /**/ /*26*/ =   dot.gif
InBlock.gif
'a''b''c' ,'1''2'
ExpandedBlockEnd.gif}

None.gif
ExpandedBlockStart.gifContractedBlock.gifBOOL Compress(LPCSTR lpstrSrc, LPSTR lpstrDen, unsigned 
long  lLen) dot.gif
InBlock.gif_ASSERT(lLen 
> 0); 
InBlock.gif
InBlock.gifsize_t nSeedCount 
= sizeof ( g_szSeed ) / sizeof(char); 
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
for(unsigned long i = 0 ; i < lLen; ++i )dot.gif
InBlock.gif
char chCurSeed = g_szSeed[i % nSeedCount]; 
InBlock.gif
InBlock.gif
if(*(lpstrSrc + i)) 
InBlock.gif
*(lpstrDen + i) = (chCurSeed ^ *(lpstrSrc + i)); 
InBlock.gif
else 
InBlock.gif
*(lpstrDen + i) = *(lpstrSrc + i); 
InBlock.gif
ExpandedSubBlockEnd.gif}
 
InBlock.gif
InBlock.gif
InBlock.gif
return TRUE; 
ExpandedBlockEnd.gif}
 

他写的是C++代码,我对这个进行了一定的转化,变成了C#的形式。然后对这个加密算法加密出来的密文进行攻击,攻击的时候完全不知道密钥的长度及内容,也不涉及加密算法代码本身(当然会涉及到该加密算法的相关知识)。因此破解过程还是相当的公正的。

想知道我怎么进行破解的吗?点击这里可以下载源程序(当然也包括破解程序)。

运行过我的程序,你应该会发现原来破解“简单异或”加密算法是一件多么容易的事情了:一天的编码时间(从完全没有这方面经验开始),加上几秒钟都不到的运行时间,一切就搞定了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值