动态验证码是一种安全机制,用于验证用户身份或防止自动化程序(如机器人)进行恶意操作。它通常由一组随机生成的字符组成,显示在用户的设备上,并在一定时间后失效。
以下是一个简单的PHP示例,展示如何生成和验证文本验证码:
<?php
session_start();
// 生成验证码
function generateCaptcha() {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$length = 6;
$captcha = '';
for ($i = 0; $i < $length; $i++) {
$captcha .= $characters[rand(0, strlen($characters) - 1)];
}
$_SESSION['captcha'] = $captcha;
return $captcha;
}
// 验证验证码
function verifyCaptcha($input) {
if (isset($_SESSION['captcha']) && $_SESSION['captcha'] === $input) {
unset($_SESSION['captcha']); // 验证成功后清除验证码
return true;
}
return false;
}
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$captcha = generateCaptcha();
echo "<img src='data:image/png;base64," . base64_encode(imagecreatestring(60, 30, 5, $captcha)) . "' alt='Captcha'>";
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
$input = $_POST['captcha'];
if (verifyCaptcha($input)) {
echo "验证成功!";
} else {
echo "验证失败,请重试。";
}
}
?>
session_start()
在脚本开头调用。通过以上步骤,您可以实现一个基本的动态验证码系统,并确保其安全性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云