12 12
发新话题
打印

验证码的代码问题

验证码的代码问题

这段代码可以不借助gd库函数,生成四位的验证码,可视代码里80%部分都看不懂,有没有高手能给详细讲解一下,感激不尽~
复制内容到剪贴板
代码:

 

<?php

header
("Pragma:no-cache");

header("Cache-control:no-cache");

header("ContentType: Image/BMP");

$Color[0] = chr(0).chr(0).chr(0);

$Color[1] = chr(255).chr(255).chr(255);

$_Num[0]  = "1110000111110111101111011110111101001011110100101111010010111101001011110111101111011110111110000111";

$_Num[1]  = "1111011111110001111111110111111111011111111101111111110111111111011111111101111111110111111100000111";

$_Num[2]  = "1110000111110111101111011110111111111011111111011111111011111111011111111011111111011110111100000011";

$_Num[3]  = "1110000111110111101111011110111111110111111100111111111101111111111011110111101111011110111110000111";

$_Num[4]  = "1111101111111110111111110011111110101111110110111111011011111100000011111110111111111011111111000011";

$_Num[5]  = "1100000011110111111111011111111101000111110011101111111110111111111011110111101111011110111110000111";

$_Num[6]  = "1111000111111011101111011111111101111111110100011111001110111101111011110111101111011110111110000111";

$_Num[7]  = "1100000011110111011111011101111111101111111110111111110111111111011111111101111111110111111111011111";

$_Num[8]  = "1110000111110111101111011110111101111011111000011111101101111101111011110111101111011110111110000111";

$_Num[9]  = "1110001111110111011111011110111101111011110111001111100010111111111011111111101111011101111110001111";

echo 
chr(66).chr(77).chr(230).chr(4).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(54).chr(0).chr(0).chr(0).chr(40).chr(0).chr(0).chr(0).chr(40).chr(0).chr(0).chr(0).chr(10).chr(0).chr(0).chr(0).chr(1).chr(0);

echo 
chr(24).chr(0).chr(0).chr(0).chr(0).chr(0).chr(176).chr(4).chr(0).chr(0).chr(18).chr(11).chr(0).chr(0).chr(18).chr(11).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(0);

for (
$i=9;$i>=0;$i--){

  for (
$j=0;$j<=3;$j++){

   for (
$k=1;$k<=10;$k++){

    if(
mt_rand(0,7)<1){

     echo 
$Color[mt_rand(0,1)];

    }else{

     echo 
$Color[substr($_Num[$nmsg[$j]], $i 10 $k1)];

    }

   }

  }

}

?>

[ 本帖最后由 enze 于 2008-4-9 18:12 编辑 ]
本帖最近评分记录
  • php P币 +5 精品文章 2008-4-10 13:15

TOP

引用:
header("ContentType: Image/BMP");
关键在这一句上,就是根据bmp文件的格式直接写一个文件

TOP

引用:
原帖由 chris 于 2008-4-9 16:35 发表


关键在这一句上,就是根据bmp文件的格式直接写一个文件
那后面就是开始写bmp的二进制代码了吧?
这样的话,就不研究了,暂时还没到这么深的水准研究这个。。。哈哈

TOP

哈哈,这个需要对bmp文件格式非常了解
本帖最近评分记录
  • php P币 +1 2008-4-10 13:15

TOP

引用:
原帖由 chris 于 2008-4-9 17:28 发表
哈哈,这个需要对bmp文件格式非常了解
哈哈,现在应该没必要用这玩意,现在的空间都支持GD

TOP

剑走偏锋咯
广告位招租。

TOP

 12 12
发新话题