做自动发贴程序-百度贴吧验证码算法

首先进入个贴吧比如"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




  • 篇文章: Delphi 简单编写下载者源码

  • 篇文章: 遥控下载者3.0 服务端代码,使用winsock api编写
  • Tags: 

    延伸阅读

    最新评论

    发表评论