亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Modul log masuk pengguna pembangunan PHP untuk mencipta kod pengesahan mudah

Fungsi kod pengesahan:

Secara berkesan menghalang penggodam daripada menggunakan program tertentu untuk memaksa pengguna berdaftar tertentu daripada membuat percubaan log masuk berterusan. Malah, kod pengesahan moden secara amnya menghalang mesin daripada mendaftar dalam kelompok dan menghalang mesin daripada menyiarkan balasan dalam kelompok. Pada masa ini, banyak tapak web menggunakan teknologi kod pengesahan untuk menghalang pengguna daripada menggunakan robot untuk mendaftar, log masuk dan spam secara automatik.


Apa yang dipanggil kod pengesahan ialah untuk menjana gambar daripada siri nombor atau simbol yang dijana secara rawak dan menambah beberapa piksel yang mengganggu pada gambar (untuk mengelakkan OCR), pengguna mengenali secara visual maklumat kod pengesahan, memasukkan borang dan menyerahkannya untuk pengesahan tapak web Hanya selepas pengesahan berjaya boleh digunakan fungsi tertentu.


Kod pengesahan kami yang paling biasa
1, empat digit, rentetan satu digit rawak, kod pengesahan paling asli, mempunyai hampir sifar kesan pengesahan.
2. Kod pengesahan gambar digital rawak. Watak-watak pada gambar agak teratur, ada yang mungkin ditambah interferon rawak, dan ada yang mempunyai warna aksara rawak, jadi kesan pengesahan lebih baik daripada yang sebelumnya. Orang yang tidak mempunyai pengetahuan asas tentang grafik dan imejan tidak boleh memecahkannya!
3. Nombor rawak dalam pelbagai format imej + huruf besar Inggeris rawak + piksel gangguan rawak + kedudukan rawak.
4. Aksara Cina ialah kod pengesahan terkini untuk pendaftaran Ia dijana secara rawak, yang menjadikannya lebih sukar untuk menaip dan menjejaskan pengalaman pengguna.

Demi kesederhanaan, objek utama penjelasan kami kali ini adalah jenis kedua. Mari lihat dahulu beberapa gambar jenis kod pengesahan ini yang lebih biasa di Internet
Keempat-empat ini styles pada dasarnya boleh Mewakili jenis kod pengesahan yang disebut dalam 2, pada mulanya nampaknya gambar pertama adalah yang paling mudah untuk retak, yang kedua adalah yang kedua, yang ketiga adalah lebih sukar, dan yang keempat adalah yang paling sukar.
Apakah keadaan sebenar? Sebenarnya, ketiga-tiga jenis imej ini sama sukar untuk dipecahkan.
Gambar pertama adalah yang paling mudah Latar belakang dan nombor gambar menggunakan warna yang sama, aksara adalah biasa dan aksara berada dalam kedudukan yang sama.
Gambar kedua nampaknya tidak mudah, tetapi jika anda mengkajinya dengan teliti, anda akan mendapati peraturannya Tidak kira bagaimana warna latar belakang dan interferon berubah, aksara pengesahan adalah tetap dan warna yang sama, jadi ia sangat mudah untuk dikecualikan. interferon, selagi ia adalah pigmen bukan watak.
Gambar ketiga nampaknya lebih rumit Selain warna latar belakang dan perubahan interferon seperti yang dinyatakan di atas, warna karakter pengesahan juga berubah, dan warna setiap karakter juga berbeza. Nampaknya mustahil untuk memecahkan kod pengesahan ini Artikel ini akan mengambil kod pengesahan jenis ini sebagai contoh Dalam gambar keempat, pelajar boleh menciptanya sendiri.
Gambar keempat, sebagai tambahan kepada ciri yang dinyatakan dalam gambar ketiga, menambah dua garis lurus kadar gangguan pada teks Nampaknya sukar, tetapi ia mudah untuk dialih keluar.

Terbitkan imej asas yang menghasilkan kod pengesahan imej png:

1. Hasilkan gambar png
2. Tetapkan warna latar belakang untuk gambar
3. Tetapkan warna dan gaya fon
Jana kod pengesahan rawak 4 digit. Laraskan sudut putaran dan kedudukan setiap aksara yang dijana dan lukiskannya pada imej png
6. Tambah bunyi dan garisan gangguan untuk menghalang mesin pendaftaran daripada menganalisis imej asal untuk pendaftaran berniat jahat
7. Keluarkan imej
8. Lepaskan imej Memori yang diduduki

Berikut ialah contoh kod pengesahan:

<?php
//設(shè)置session,必須處于腳本最頂部
  session_start();
  
  $image = imagecreatetruecolor(100, 30);    //1>設(shè)置驗證碼圖片大小的函數(shù)
  //5>設(shè)置驗證碼顏色 imagecolorallocate(int im, int red, int green, int blue);
  $bgcolor = imagecolorallocate($image,255,255,255); //#ffffff
  //6>區(qū)域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的區(qū)域著色,col 表示欲涂上的顏色
  imagefill($image, 0, 0, $bgcolor);
  //10>設(shè)置變量
  $captcha_code = "";
  //7>生成隨機數(shù)字
  for($i=0;$i<4;$i++){
    //設(shè)置字體大小
    $fontsize = 6;
    //設(shè)置字體顏色,隨機顏色
    $fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120));      //0-120深顏色
    //設(shè)置數(shù)字
    $fontcontent = rand(0,9);
    //10>.=連續(xù)定義變量
    $captcha_code .= $fontcontent;
    //設(shè)置坐標(biāo)
    $x = ($i*100/4)+rand(5,10);
    $y = rand(5,10);
   imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
  }
  //10>存到session
  $_SESSION['authcode'] = $captcha_code;
  //8>增加干擾元素,設(shè)置雪花點
  for($i=0;$i<200;$i++){
    //設(shè)置點的顏色,50-200顏色比數(shù)字淺,不干擾閱讀
    $pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200));
    //imagesetpixel — 畫一個單一像素
    imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
  }
  //9>增加干擾元素,設(shè)置橫線
  for($i=0;$i<4;$i++){
    //設(shè)置線的顏色
    $linecolor = imagecolorallocate($image,rand(80,220), rand(80,220),rand(80,220));
    //設(shè)置線,兩點一線
    imageline($image,rand(1,99), rand(1,29),rand(1,99), rand(1,29),$linecolor);
  }
  //2>設(shè)置頭部,image/png
  header('Content-Type: image/png');
  //3>imagepng() 建立png圖形函數(shù)
  imagepng($image);
  //4>imagedestroy() 結(jié)束圖形函數(shù) 銷毀$image
  imagedestroy($image);
?>

Gaya paparan adalah seperti berikut:

y3.png

Meneruskan pembelajaran
||
<?php //設(shè)置session,必須處于腳本最頂部 session_start(); $image = imagecreatetruecolor(100, 30); //1>設(shè)置驗證碼圖片大小的函數(shù) //5>設(shè)置驗證碼顏色 imagecolorallocate(int im, int red, int green, int blue); $bgcolor = imagecolorallocate($image,255,255,255); //#ffffff //6>區(qū)域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的區(qū)域著色,col 表示欲涂上的顏色 imagefill($image, 0, 0, $bgcolor); //10>設(shè)置變量 $captcha_code = ""; //7>生成隨機數(shù)字 for($i=0;$i<4;$i++){ //設(shè)置字體大小 $fontsize = 6; //設(shè)置字體顏色,隨機顏色 $fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120)); //0-120深顏色 //設(shè)置數(shù)字 $fontcontent = rand(0,9); //10>.=連續(xù)定義變量 $captcha_code .= $fontcontent; //設(shè)置坐標(biāo) $x = ($i*100/4)+rand(5,10); $y = rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); } //10>存到session $_SESSION['authcode'] = $captcha_code; //8>增加干擾元素,設(shè)置雪花點 for($i=0;$i<200;$i++){ //設(shè)置點的顏色,50-200顏色比數(shù)字淺,不干擾閱讀 $pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200)); //imagesetpixel — 畫一個單一像素 imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor); } //9>增加干擾元素,設(shè)置橫線 for($i=0;$i<4;$i++){ //設(shè)置線的顏色 $linecolor = imagecolorallocate($image,rand(80,220), rand(80,220),rand(80,220)); //設(shè)置線,兩點一線 imageline($image,rand(1,99), rand(1,29),rand(1,99), rand(1,29),$linecolor); } //2>設(shè)置頭部,image/png header('Content-Type: image/png'); //3>imagepng() 建立png圖形函數(shù) imagepng($image); //4>imagedestroy() 結(jié)束圖形函數(shù) 銷毀$image imagedestroy($image); ?>