当前位置: 首页 > news >正文

做汽车团购网站html做的网站图片横着摆放

做汽车团购网站,html做的网站图片横着摆放,江苏省建设厅网站首页,wordpress主题读取不到一、简介 为了防止网站的用户被通过密码典爆破。引入验证码的功能是十分有必要的。而前端的验证码又仅仅是只防君子不防小人。通过burpsuit等工具很容易就会被绕过。所以后端实现的验证码才是对用户信息安全的一大重要保障。 实现思路#xff1a; 1.引入图形生成的依赖 2.生成…一、简介 为了防止网站的用户被通过密码典爆破。引入验证码的功能是十分有必要的。而前端的验证码又仅仅是只防君子不防小人。通过burpsuit等工具很容易就会被绕过。所以后端实现的验证码才是对用户信息安全的一大重要保障。 实现思路 1.引入图形生成的依赖 2.生成随机4字符并制作成图片 3.对图片进行Base64形式数据进行传输 4.前端显示 二、引入依赖 !-- 验证码模块-- dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.12.0/version /dependency 三、验证码生成工具类 public class CaptchaUtil {private static final int WIDTH 200;private static final int HEIGHT 75;private static final int FONT_SIZE 36;private static final String DEFAULT_FONT Arial;/*** 生成验证码图像.** param captchaText 验证码原始文本* return Base64编码的图像字符串*/public static String generateCaptchaImage(String captchaText) {if (captchaText null || captchaText.isEmpty()) {throw new IllegalArgumentException(Captcha text cannot be null or empty.);}// 创建图像和图形上下文BufferedImage image new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);Graphics2D g (Graphics2D) image.getGraphics();// 设置背景颜色g.setColor(Color.WHITE);g.fillRect(0, 0, WIDTH, HEIGHT);// 绘制验证码文本g.setFont(new Font(DEFAULT_FONT, Font.BOLD, FONT_SIZE));g.setColor(getRandomColor());g.drawString(captchaText, 45, 50);// 添加随机线条作为干扰addNoiseLines(g);// 关闭图形上下文g.dispose();// 将图像转换为Base64编码的字符串try (ByteArrayOutputStream baos new ByteArrayOutputStream()) {ImageIO.write(image, png, baos);return Base64.getEncoder().encodeToString(baos.toByteArray());} catch (Exception e) {throw new RuntimeException(Error generating captcha image, e);}}private static void addNoiseLines(Graphics2D g) {for (int i 0; i 5; i) {g.setColor(getRandomColor());g.drawLine(getRandomNumber(WIDTH),getRandomNumber(HEIGHT),getRandomNumber(WIDTH),getRandomNumber(HEIGHT));}}private static Color getRandomColor() {return new Color((int) (Math.random() * 255),(int) (Math.random() * 255),(int) (Math.random() * 255));}private static int getRandomNumber(int bound) {return (int) (Math.random() * bound);} } 四、通过Http Session存放验证码与验证 获取(a-z A-Z 0-9)随机四位的验证码功能 // 登陆时候获取验证码ApiOperation(获取验证码功能)GetMapping(/GetCaptcha)public String GetCaptcha(HttpSession session) {// 随机生成四位验证码原始数据String allowedChars 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;String randomString generateRandomString(allowedChars, 4);System.out.println(captchaCode randomString);// 将验证码保存到session中session.setAttribute(captcha, randomString); // 使用方法参数sessionString ImageByBase64 CaptchaUtil.generateCaptchaImage(randomString);return ImageByBase64;} 用户登陆时候校验验证码功能 // 实现登陆功能ApiOperation(用户登陆功能)PostMapping(/login)public Result Login(RequestBody LoginDTO loginDTO, HttpSession session) { // 使用同一个HttpSession参数String captcha (String) session.getAttribute(captcha);log.info(用户调用login方法);if (loginDTO.getCaptcha() null || !loginDTO.getCaptcha().equalsIgnoreCase(captcha)) {session.removeAttribute(captcha);return Result.error(验证码出错了噢!);}// 对密码进行md5加密String encryptToMD5 MD5Util.encryptToMD5(loginDTO.getPassword());LambdaQueryWrapperUser lambdaQueryWrapper new LambdaQueryWrapper();lambdaQueryWrapper.eq(User::getAccount, loginDTO.getAccount()).eq(User::getPassword, encryptToMD5);User user userService.getOne(lambdaQueryWrapper);if (user null) {return Result.error(很抱歉查不到此用户);}user.setPassword(xxxxx);return Result.success(user);} 五、前端显示Base64格式的图片 前端实现注册的表单 el-tab-pane label登陆 namefirstel-form :modelloginForm refloginFormRef label-width80pxel-form-item label用户名:el-input v-modelloginForm.account/el-input/el-form-itemel-form-item label密码:el-input v-modelloginForm.password show-password/el-input/el-form-itemel-form-item label验证码el-input v-modelloginForm.captcha stylewidth: 20%;/el-inputimg :srccaptchaImageUrl alt验证码 clickrefreshCaptcha idcaptchaImage/el-form-item/el-form/el-tab-pane 先设置为空 export default {data() {return {captchaImageUrl: , // 初始化为一个空字符串}}, 在点击登陆按钮后执行getCaptcha函数并设置captchaImageUrl的回显格式为Base64 fetchCaptcha() {axios.get(/api/user/GetCaptcha).then(response {this.captchaImageUrl data:image/png;base64, response.data;}).catch(error {console.error(获取验证码失败:, error);});}, 最后进行测试 注意实现完成验证码功能后需要注意用户的操作。如果登陆失败刷新页面切换页面。都需要重新更新验证码
http://www.ho-use.cn/article/10822381.html

相关文章:

  • 基于wordpress个人博客网站论文做网站视频用哪个视频编辑软件
  • 上海嘉定网站市场营销八大营销模式
  • 汕头网站专业制作外贸网站是什么意思
  • 义乌网站建设优化排名开个网站卖机器怎么做
  • 网站改版提交技术支持 沧州网站建设
  • 男女做那个的网站是什么找做玻璃的网站
  • 东莞市长安网站建设公司jsp做门户网站
  • 简单的app开发制作南昌网站seo
  • 演出票务网站建设福建住房城乡建设部网站
  • wordpress个人博客网站游戏开发软件工具
  • 杭州网站排名服务全国十大网站设计工作室
  • 山东省建设厅举报网站wordpress安装图片不显示不出来
  • 个人做电梯网站网站建设与发布需要什么
  • 荣县规划和建设局网站官方网站建设成果
  • 沧州市做网站如何免费自学网站建设
  • 包小盒设计网站申请免费网站
  • 网站开发 犯法网站开发费用清单
  • 桂林相关网站扬中论坛最新
  • 网页设计国外设计欣赏网站最赚钱的小型加工厂
  • 深圳做网站公司地点山东省建设工程信息网官网
  • 网站域名缴费高端网站建设 企业网站建站
  • 大连网站开发乛薇阿里企业邮箱怎么样
  • 珠海做网站公司搭建 wordpress 简书
  • 做一个小程序需要多少钱?seo发包软件
  • 企业网站建设中期报告模板wordpress在哪
  • 如何建立一个私人网站做电子商务网站价格
  • 西安企业网站制作试描述一下网站建设的基本流程图
  • 视频网站建设成本海阳玖网站建设
  • 有没有做吉祥物的网站无锡电子商务网站建设公司
  • 造纸公司网站建设做网站常德