速通python!!!!!!!

news2024/9/21 13:45:17
  1. 生成验证码图片

    • 创建一个随机字符串(验证码)并存储在会话(session)中,以便后续验证。
    • 使用Java的图形API(如java.awtjavax.imageio)来生成一个包含该随机字符串的图片。
    • 可以添加一些干扰元素(如噪点、线条)来使验证码更难被机器识别。
  2. 将验证码图片发送到客户端

    • 将生成的验证码图片作为HTTP响应的一部分发送给客户端(浏览器)。
    • 这通常是通过将图片写入ServletOutputStreamHttpServletResponsegetOutputStream()来实现的。
  3. 在HTML表单中包含验证码输入框

    • 在HTML表单中添加一个文本输入框,用于用户输入他们看到的验证码。
    • 还需要一个<img>标签来显示验证码图片,并可能包含一个刷新按钮来重新生成验证码。
  4. 验证用户输入的验证码

    • 当用户提交表单时,检查他们输入的验证码是否与会话中存储的验证码匹配。
    • 如果匹配,则继续处理表单数据;否则,显示错误消息并要求用户重新输入验证码。
  5. 清理和安全性考虑

    • 在验证完成后,从会话中删除验证码以防止重复使用。
    • 考虑使用HTTPS来加密传输的数据,以防止验证码在传输过程中被截获。
    • 设置验证码的有效期,并在过期后自动重新生成。

下面是第一个示例:要实现如图所示页面:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>随机一位数加法</title>
  <style>
    /* 添加一些简单的样式 */
    body {
      font-family: Arial, sans-serif;
      text-align: center;
      margin-top: 50px;
    }
    .equation {
      font-size: 2em;
      margin-bottom: 20px;
    }
    button {
      font-size: 1em;
      padding: 10px 20px;
    }
    #captcha {
      width: 50px;
      text-align: center;
    }
  </style>
</head>
<body>

<div class="equation" id="equation"></div>
<input type="text" id="captcha" placeholder="请输入验证码">
<button onclick="generateNewEquation()">看不清换一张</button>
<button onclick="verifyCaptcha()">确定</button>

<script>
  var sum
  function generateRandomNumber() {
    return Math.floor(Math.random() * 10); // 生成0-9之间的随机数
  }

  function generateNewEquation() {
    var num1 = generateRandomNumber();
    var num2 = generateRandomNumber();
    sum = num1 + num2;

    // 显示新的算式
    document.getElementById('equation').textContent = `${num1} + ${num2} = ?`;

    // 清除验证码框的内容
    document.getElementById('captcha').value = '';
  }

  function verifyCaptcha() {
    // var expectedSum = parseInt(document.getElementById('equation').textContent.split('=')[1].trim(), 10);
    var enteredCaptcha = parseInt(document.getElementById('captcha').value, 10);

    if (isNaN(enteredCaptcha) || enteredCaptcha == sum){
      //alert('验证码错误,请重新输入!');
      window.location.href = 'http://www.gxufl.edu.cn'; // 请确保链接正确
      return;
    }
    else{
      // 跳转到广西外国语学院首页
      alert('验证码错误,请重新输入!');
    }

  }

  // 初始生成一个算式
  generateNewEquation();
</script>
</body>
</html>

下面是一个简化的示例代码,展示了如何在Servlet中生成和发送验证码图片:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        body {
            margin: 0;
            padding: 0;
        }

        a {
            text-decoration: none;
            color: #fff;
        }
        .Box{
            margin: 100px auto 0;
            text-align: center;
        }
        .box {
            width: 300px;
            color: #fff;
            background-color: rgba(0, 0, 0, 0.5);
            margin: auto;
            text-align: center;
        }

        .boxCode {
            width: 300px;
            background-color: rgba(0, 0, 0, 0.5);
            margin: auto;
        }

        .code {
            color: red;
            font-size: 30px;
        }
    </style>
</head>
<body>
    <div class="Box">
        <div class="boxCode">
            <span class="code" id="code"></span>
            <a href="" id="linkbt">看不清换一张</a>
        </div>
        <div class="box">
            <label for="inputCode">验证码:</label>
            <input type="text" id="inputCode">
            <input type="button" id="Button1" value="确定">
        </div>
    </div>
    <script type="text/javascript">
        'user strict';
        function getCode(){
            var a1 = Math.round(Math.random() * 9)
            var a2 = Math.round(Math.random() * 9)
			var code = {
				codeStr : a1 + "+" + a2 + "=?",
				codeVal : a1 + a2,
			}
            return code;
        }
		
        window.onload=function(){
            let res = getCode()
			document.getElementById("code").innerText = res.codeStr
			document.getElementById("linkbt").onclick = function(){
				document.getElementById("code").innerText = res.codeStr
			}
			document.getElementById("Button1").onclick = function(){
				var v = document.getElementById("inputCode").value
				if(res.codeVal != v){
					alert("输入错误!")
					res = getCode()
					document.getElementById("code").innerText = res.codeStr
				}else{
					window.location.href = 'https://www.nnnu.edu.cn'
				}
			}
        }
    </script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1872478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20240627优雅草新产品取得原始软件著作权授权

https://doc.youyacao.com/22/2153 20240627优雅草新产品取得原始软件著作权授权 介绍 历程消息&#xff1a;优雅草2024年新产品最新取得原始著作权两份&#xff0c;2款产品将在近期完成为商业授权产品在蜻蜓松鼠官网售卖&#xff0c;本两款产品是智慧园区能源监测管理系统解…

Redis数据迁移-RedisShake

redis-shake是阿里云Redis团队开源的用于Redis数据迁移和数据过滤的工具。 一、基本功能 redis-shake它支持解析、恢复、备份、同步四个功能 恢复restore&#xff1a;将RDB文件恢复到目的redis数据库。 备份dump&#xff1a;将源redis的全量数据通过RDB文件备份起来。 解析deco…

通义灵码上线 Visual Studio 插件市场啦!

通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力&#xff0c;提供代码智能生成、研发智能问答能力。 通义灵…

Appium+python自动化(二十九)- 模拟手指在手机上多线多点作战 - 多点触控(超详解)

简介 在网页中我们经常使用缩放操作来便利的查看具体的信息&#xff0c;在appium中使用MultiAction多点触控的类来实现。MultiAction是多点触控的类&#xff0c;可以模拟用户多点操作。主要包含加载add()和执行perform()两个方法. 问题思考 在使用地图App中&#xff0c;我们…

【高级篇】主从复制与高可用性:构建坚若磐石的数据库基础设施(十二)

引言 在上一章《备份与恢复》中,我们深入探讨了如何通过各种备份策略和恢复技术,确保数据的安全性和业务的连续性。然而,为了应对更大规模的业务挑战和灾难恢复需求,仅仅依靠备份是不够的。本章,我们将聚焦于MySQL的主从复制与高可用性技术,从原理到实践,从配置到优化,…

Eslint prettier airbnb规范 配置

1.安装vscode的Eslint和prettier 插件 eslint&#xff1a;代码质量检查工具 https://eslint.nodejs.cn/docs/latest/use/getting-started prettier&#xff1a;代码风格格式化工具 https://www.prettier.cn/docs/index.html /* eslint-config-airbnb-base airbnb 规范 esl…

数字化转型:华为如何用V型方法论重塑IT团队

数字化转型不仅要求企业重新审视其业务模式&#xff0c;更要求企业的IT运作方式发生根本性的变革。传统IT开发方式由于其局限性&#xff0c;已经无法满足企业快速响应市场需求、实现业务创新的需求。 传统IT开发方式的局限性 传统IT开发方式往往采用需求交接式的工作模式&…

从零开始:视频直播美颜SDK的开发与接入详解

开发一款功能强大的美颜SDK并将其接入视频直播应用&#xff0c;成为许多开发者和企业的迫切需求。本篇文章&#xff0c;小编将详细介绍如何从零开始开发和接入视频直播美颜SDK。 一、美颜SDK的基本概念 美颜SDK是一组工具和库&#xff0c;帮助开发者在应用程序中实现美颜效果…

靶机渗透之DC-8

一、信息收集 扫一下子网段&#xff0c;发现靶机ip为192.168.145.130。 nmap -sP 192.168.145.* 进一步进行端口、系统等信息扫描&#xff0c;开放的端口为80、22&#xff0c;中间件为apache。 nmap -sT -T4 -sV -O -sC -p1-65535 192.168.145.130 再扫一下网站目录&#xf…

网络抓包分析工具

摘要 随着网络技术的快速发展&#xff0c;网络数据的传输和处理变得日益复杂。网络抓包分析工具作为网络故障排查、性能优化以及安全审计的重要工具&#xff0c;对于提升网络管理的效率和准确性具有重要意义。本文旨在设计并实现一款高效、易用的网络抓包分析工具&#xff0c;…

从ChatGPT代码执行逃逸到LLMs应用安全思考

摘要 11月7日OpenAI发布会后&#xff0c;GPT-4的最新更新为用户带来了更加便捷的功能&#xff0c;包括Python代码解释器、网络内容浏览和图像生成能力。这些创新不仅开辟了人工智能应用的新境界&#xff0c;也展示了GPT-4在处理复杂任务方面的惊人能力。然而&#xff0c;与所有…

OZON与WB平台自养号测评:优势与搭建步骤解析

随着俄罗斯跨境电商市场的蓬勃发展&#xff0c;OZON和WB平台吸引了越来越多的国内卖家入驻。为了提升产品权重、增加曝光度并加速销售&#xff0c;许多卖家选择通过自养号测评的方式来优化店铺运营。自养号测评在OZON和WB平台上具有多重显著优势。 一、自养号测评的优势 1. 权…

C++编程(一)C++与C语言的一些区别

文章目录 一、QtCreator基本使用&#xff08;一&#xff09;编码格式&#xff1a;&#xff08;二&#xff09;C编程1. 文件后缀2. 编译3. 头文件 二、名字空间&#xff08;一&#xff09;概念以及访问方式1. 概念2. 访问方式&#xff08;1&#xff09;通过作用域限定符进行访问…

如何看待AIGC中漫画版权争议?( 计育韬老师高校公益巡讲答疑实录2024)

这是计育韬老师第 8 次开展面向全国高校的新媒体技术公益巡讲活动了。而在每场讲座尾声&#xff0c;互动答疑环节往往反映了高校师生当前最普遍的运营困境&#xff0c;特此计老师在现场即兴答疑之外&#xff0c;会尽量选择有较高价值的提问进行文字答疑梳理。 *本轮巡讲主题除了…

QT拖放事件之五:自定义拖放操作-拖动中的修饰符操作

1、效果 2、代码 #include "SelfButton.h" #include <QApplication>SelfButton::SelfButton(QString str ,QWidget* parent):Q

嵌入式Linux系统编程 — 4.3 strcat、strcpy函数拼接与复制字符串

目录 1 字符串拼接 1.1 strcat函数 1.2 strncat函数 1.3 示例程序 2 字符串复制 2.1 strcpy函数 2.2 strncpy函数 2.3 示例程序 1 字符串拼接 1.1 strcat函数 在Linux系统中&#xff0c;strcat 函数是C语言标准库中的一个函数&#xff0c;用于将一个字符串追加到另一…

深度解析百数多标签技术:让数据处理更加精准与高效

百数的多标签功能允许用户在单个表单或应用中创建多个独立的标签页&#xff0c;每个标签页可以包含不同的字段和数据。这有助于清晰组织和管理表单内容&#xff0c;使数据结构更加分明。用户可以根据需要添加、删除或重新排序标签&#xff0c;轻松管理复杂数据&#xff0c;提高…

Kafka入门到精通(三)-Kafka

Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。 这种动作&#xff08;网页浏览&#xff0c;搜索和其他用户的行动&#xf…

Kali系统的中英文切换

执行命令&#xff1a;sudo dpkg-reconfigure locales 命令作用&#xff1a;重新生成locales配置文件并允许你重新选择所需的语言环境。 中文&#xff1a;zh_CN.UTF-8 UTF-8 英文&#xff1a;en_US.UTF-8 UTF-8 用空格键选中和取消选项。 要设置成中文&#xff1a;取消选择en…

我教会了我妈搭建自己的 AI 聊天机器人...

在这个人工智能爆发的年代,ChatGPT、Claude、Kimi、文心一言等 AI 大模型产品火遍全网,仿佛一夜之间,人人都在谈论 AI。 作为普通人的我们,难道就只能看着程序员们尽情玩耍,自己却无法参与其中吗?NO! 鉴于最近自己社群学员和粉丝的要求&#xff0c;一进来大家无论是不是小白…