闂傚倸鍊搁崐宄懊归崶顒€违闁逞屽墴閺屾稓鈧綆鍋呭畷宀勬煛瀹€鈧崰鏍€佸☉妯峰牚闁告劗鍋撳В澶嬩繆閻愵亜鈧垿宕曟繝姘闁跨噦鎷� (0) +1 闂傚倸鍊峰ù鍥х暦閸偅鍙忕€广儱鎷嬮崥瀣煕閳╁喚娈㈠ù纭锋嫹 (0) +1 闂傚倸鍊搁崐鎼佸磹閹间降鍋戦悗娑欋缚椤╂煡鏌i幋锝嗩棄缂佺媭鍨堕弻銊╂偆閸屾稑顏� (0) +1
闂傚倸鍊搁崐宄懊归崶顒€违闁逞屽墴閺屾稓鈧綆鍋呭畷宀勬煛瀹€鈧崰鏍€佸☉妯峰牚闁告劗鍋撳В澶嬩繆閻愵亜鈧垿宕曢弻銉ュ瀭闁秆勵殔閽冪喖鏌i弮鍥モ偓鈧柛瀣尭閳藉鈻嶉褌绨奸柟渚垮姂瀹曟儼顦柡鈧懞銉d簻闁哄洨鍋為ˉ鐐烘倵濮樼偓瀚�闂傚倸鍊搁崐椋庣矆娓氣偓楠炴牠顢曢妶鍡椾粡濡炪倖鍔х粻鎴犲閸ф鐓曢柟閭﹀灱閸ゅ鏌ら弶鎸庡仴闁哄本绋戦埥澶娾枎閹邦喚鈻忕紓鍌氬€风拋鏌ュ疾閻樿钃熼柣鏃傗拡閺佸秵绻濇繝鍌氭灓闁哄棭鍘奸—鍐Χ閸愩劌濮烽梺鐟板殩閹凤拷>>

正在阅读:做自动发贴程序-百度贴吧验证码算法做自动发贴程序-百度贴吧验证码算法

2005-09-23 09:57 出处: 作者:oldxue 责任编辑:moningfeng

  热点推荐ASP连接11种数据库语法总结    世界编程大赛头名程序

  首先,进入一个贴吧,比如"virus吧",地址是http://post.baidu.com/f?kw=virus

图1

  可以看到,页面底部有一个表单,允许匿名发贴。如果要写一个自动发贴的程序,唯一的难点是验证码。

图2

  接下来查看页面源码,发现验证码是个图片,由脚本生成。验证码图片的链接是形如http://post-js.baidu.com/cgi-bin/c?[p1]&[p2]的样子,其中p1和p2是两个随机整数。

图3

  所有验证码图片上面都有4个阿拉伯数字,夹杂一些噪音点。可惜这些噪音点不是随机产生的,举个例子,http://post-js.baidu.com/cgi-bin/c?0&0和http://post-js.baidu.com/cgi-bin/c?65536&0这两个链接将产生两幅完全相同的图片。

  验证图片上面的数字是可以由产生它的链接地址直接计算出来的。公式的c代码如下:

p1 >>= 8;
p2 >>= 8;
p1 = (p1 & 0xff)+((p1 >> 16) << 8);
p2 = (p2 & 0xff)+((p2 >> 16) << 8);
result = (p1 + (p2 << 16)) % 10000;


  图3所示的链接地址可以生成图2中的验证码,对于这个例子,链接中的两个整数:

p1 = 695327974, p2 = 1581465364
p1 = p1/256 = 695327974/256 = 2716124
p2 = p2/256 = 1581465364/256 = 6177599
p1 = p1%256 + p1/65536*256 = 2716124%256 + 2716124/65536*256 = 10716
p2 = p2%256 + p2/65536*256 = 6177599%256 + 6177599/65536*256 = 24127
result = (p1 + p2*65536)%10000 = (10716 + 24127*65536)%10000 = 1581197788%10000 = 7788


  这就是图2中的验证码7788。

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
闂傚倸鍊搁崐椋庣矆娴h櫣绀婂┑鐘插€寸紓姘辨喐閺冨牄鈧線寮介鐐茶€垮┑锛勫仧缁垶寮悩缁樷拺闂侇偆鍋涢懟顖涙櫠閹绢喗鐓欐い鏃€顑欏ḿ鎰版煙瀹勭増鍤囩€规洏鍔嶇换婵嬪磼濞嗘劖鈻曟繝鐢靛Х椤h棄危閸涙潙纾婚柟鎹愵嚙缁狀垶鏌ㄩ悤鍌涘闂傚倸鍊搁崐鐑芥倿閿曞倸绠栭柛顐f礀绾惧潡鏌熼幆鐗堫棄缁惧墽绮换娑㈠箣濞嗗繒浠奸梺鍝勫閸庣敻骞冨鈧幃娆撳级閸喚褰戝┑鐐茬摠缁秶鍒掗幘璇茶摕婵炴垯鍩勯弫鍐煥濠靛棙顥犳い锔哄劦濮婃椽宕ㄦ繝鍐炬闂佺懓鍤栭幏锟�