php验证码解析

来源:百度知道 编辑:UC知道 时间:2024/07/02 13:18:17
这是验证码,还有很多看不明,不知道具体的函数和参数有什么用,望高手能告诉我!
<?php
//产生随机变形随机码
session_start();
$authnum=random(4);

Header("Content-type: image/PNG");
$im = imagecreate(55,18); //imagecreate() 新建图像,大小为 x_size 和 y_size 的空白图像。
$red = ImageColorAllocate($im, 52,24,128); //设置背景颜色
$white = ImageColorAllocate($im, 65,223,224);//设置文字颜色
$gray = ImageColorAllocate($im, 0,0,0); //设置杂点颜色
imagefill($im,55,18,$red);
for ($i = 0; $i < strlen($authnum); $i++)
{
imagestring($im, 6, 13*$i+4, 1, substr($authnum,$i,1), $white);
}
for($i=0;$i<50;$i++) imagesetpixel($im, rand()%55 , rand()%48 , $gray); //加入干扰象素
ImagePNG($im); //以 PNG 格式将图像输出到浏览器或文件
ImageDestroy($im);//销毁一图像
$authnum=strtolower($authnum);
$_SESSION['code']=$authnum;
//产生随机数函数
function random($length)
{
$hash = '';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcde

同学 具体那看不明白请说
  东西太多 不能一一解释

  <?php
  //产生随机变形随机码
  session_start();;/* 开启SESSION 以便其他页面对验证码进行验证*/
  $authnum=random(4);//种子

  Header("Content-type: image/PNG"); //古例,改不得
  $im = imagecreate(55,18); //imagecreate() 新建图像,大小为 x_size 和 y_size 的空白图像。
  $red = ImageColorAllocate($im, 52,24,128); //设置背景颜色
  $white = ImageColorAllocate($im, 65,223,224);//设置文字颜色
  $gray = ImageColorAllocate($im, 0,0,0); //设置杂点颜色
  imagefill($im,55,18,$red);
  for ($i = 0; $i < strlen($authnum); $i++)
  {
  imagestring($im, 6, 13*$i+4, 1, substr($authnum,$i,1), $white);
  }
  for($i=0;$i<50;$i++) imagesetpixel($im, rand()%55 , rand()%48 , $gray); //加入干扰象素
  ImagePNG($im); //以 PNG 格式将图像输出到浏览器或文件
  ImageDestroy($im);//销毁一图像
  $authnum=strtolower($authnum);
  $_SESSION['code']=$authnum /* 把验证码的内容赋值给SESSION 以便其他页面验证*/
  //产生随机数的函数
  function random($length) /* 产生随机