自动生成密码,验证码,帐号及常见输入验证

简介:
自动生成密码:
function generatepwd()
  {
       var str = "012345789abcdefghijklmnopqrstuvwxyz";
       var len = 6;  //随机数的长度
       var result = "";  //用于保存结果的变量
       for(i=0;i<len;i++){
             result += str.charAt(Math.round(Math.random()*(str.length-1)));
       }
常见输入验证
function check()
  {
      var teamName = document.teamForm.teamName.value;
      var teamLeaderName = document.teamForm.teamLeaderName.value;
    var password = document.teamForm.password.value;
    var teamCodeName = document.teamForm.teamCodeName.value;
    var instruction = document.teamForm.instruction.value;
    var tel =document.teamForm.tel.value;
    var email = document.teamForm.email.value;
    var applyGrade = document.teamForm.applyGrade.value;
    var applyYear = document.teamForm.applyYear.value;
   if(teamName=="")//是否为空验证
      {
             alert('工作组名称不能为空!')
             return false;
      }
      if(teamName!="")//是否允许空格
      {
             No = " "
             for(i=0; i<teamName.length; i++)
             {
               var Checkstr = teamName.charAt(i);
              if (No.indexOf(Checkstr)!= -1)
              {
                  alert("工作组名称不能有空格!");
                  return false;
              }
         }
      }
   if(teamName.length>50)//长度验证
      {
             alert('工作组名称必须小于50个字符!')
             return false;
      }
      if(teamLeaderName=="")
      {
             alert('组长姓名不能为空!')
             return false;
      }
      if(teamLeaderName.length>30)
      {
             alert('组长姓名必须小于30个字符!')
             return false;
      }
      if(teamLeaderName!="")//数字验证
      {
             No = "0123456789"
             for(i=0; i<teamLeaderName.length; i++)
             {
               var Checkstr = teamLeaderName.charAt(i);
              if (No.indexOf(Checkstr)!= -1)
              {
                  alert("组长姓名不应该输入数字!");
                  return false;
              }
         }
      }
      if(password=="")
      {
             alert('密码不能为空!')
             return false;
      }
             if(password.length<6)
      {
             alert('密码必须大于6个字符!')
             return false;
      }
      if(password.length>10)
      {
             alert('密码必须小于10个字符!')
             return false;
      }
   if(teamCodeName.length>100)
      {
             alert('工作组代号必须小于100个字符!')
             return false;
      }
   if(teamCodeName!="")//英文验证
      {
             No = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ .+-"
             for(i=0; i<teamCodeName.length; i++)
             {
               var Checkstr =teamCodeName.charAt(i);
              if (No.indexOf(Checkstr)== -1)
              {
                  alert("工作组代号应该输入英文字符!");
                  return false;
              }
         }
      }
   if(instruction.length>400)
      {
             alert('简介必须小于400个字符!')
             return false;
      }
      if(tel.length>20)
      {
             alert('联系电话格式不正确!')
             return false;
      }
      if(tel!="")//电话号码格式验证
      {
             No = "0123456789()+-"
             for(i=0; i<tel.length; i++)
             {
               var Checkstr = tel.charAt(i);
              if (No.indexOf(Checkstr)== -1)
              {
                  alert("联系电话应该输入数字!");
                  return false;
              }
         }
      }
      if(email=="")//Email格式验证
       {
             alert('联系人Email不能为空!')
             return false;
      } 
         if(email.charAt(0)=="."||email.charAt(0)=="@"||email.indexOf('@',0)==-1||email.indexOf('.',0)==-1||email.lastIndexOf("@")==email.length-1||email.lastIndexOf(".")==email.length-1)
      {
             alert('联系人Email格式不正确!')
             return false;
      }          
     if(email.length>30)
      {
             alert('联系人Email必须小于30个字符!')
             return false;
      }
      else
      {
             document.teamForm.submit();
             alert("恭喜,工作组新增成功!");
      }
  }
自动生成帐号
public String getNewUserAccount() {
              String newAccount = "";
              Date date = new Date();//获取当前日期
              String year = String.valueOf(date.getYear() + 1900);//年份+1900
              String sql = "from Userinfo a where a.userAccount like '" + year + "%'";
              List list = userinfoDAO.getSqlresult(sql);
              //自动生成帐号
              if (list.isEmpty()) {
 
                     newAccount = year + "001";
              } else {
                     newAccount = String.valueOf((Integer.parseInt(((Userinfo) list
                                   .get(0)).getUserAccount()) + 1));
              }
              return newAccount;//返回新帐号
       }
注:这种方法是生成如下格式帐号,当年如2009的注册用户依次为20090012009002…..
还可以用其他的帐号生成方式,比如首先获得新注册用户说选择的角色或部门,在后面再加00010002等也是可以的。
 
自动生成验证码
这个资源来源http://kinkding.blog.51cto.com,还有一个Web开发中的验证码图片的生成-基于Java的实现 网址是http://kyo19.javaeye.com/blog/315246,也是自动生成验证码的,可以参考着看。
<%@ page contentType= "image/jpeg"   import ="java.awt.*,    
java.awt.image.*,java.util.*,javax.imageio.*" %>    
<%    
//  在内存中创建图象     
int  width=60, height=20;    
BufferedImage image = 
new  BufferedImage(width, height,    
BufferedImage.TYPE_INT_RGB);    

//  获取图形上下文     
Graphics g = image.getGraphics();    

//  设定背景色     
g.setColor(
new  Color(0xDCDCDC));    
g.fillRect(0, 0, width, height);    

// 画边框     
g.setColor(Color.black);    
g.drawRect(0,0,width-1,height-1);    

//  取随机产生的认证码 (4 位数字 )    
String rand = request.getParameter(
"rand" );    
rand = rand.substring(0,rand.indexOf(
"." ));    
switch (rand.length())    
{    
case  1: rand =  "000" +rand;  break ;    
case  2: rand =  "00" +rand;  break ;    
case  3: rand =  "0" +rand;  break ;    
default : rand = rand.substring(0,4);  break ;    
}    

//  将认证码存入 SESSION    
session.setAttribute(
"rand" ,rand);    

//  将认证码显示到图象中     
g.setColor(Color.black);    
Integer tempNumber = 
new  Integer(rand);    
String numberStr = tempNumber.toString();    

g.setFont(
new  Font( "Atlantic Inline" ,Font.PLAIN,18));    
String Str = numberStr.substring(0,1);    
g.drawString(Str,8,17);    

Str = numberStr.substring(1,2);    
g.drawString(Str,20,15);    
Str = numberStr.substring(2,3);    
g.drawString(Str,35,18);    

Str = numberStr.substring(3,4);    
g.drawString(Str,45,15);    

//  随机产生 88 个干扰点,使图象中的认证码不易被其它程序探测到     
Random random = 
new  Random();    
for  ( int  i=0;i<20;i++)    
{    
int  x = random.nextInt(width);    
int  y = random.nextInt(height);    
g.drawOval(x,y,0,0);    
}    

//  图象生效     
g.dispose();    

//  输出图象到页面     
ImageIO.write(image, 
"JPEG" , response.getOutputStream());    
%>
通过 URL 访问测试即可:
[url]http://localhost:8080/test/codetest.jsp?rand=1080.[/url]
 

     本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/164023,如需转载请自行联系原作者



相关文章
|
4月前
|
JavaScript NoSQL Redis
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
这篇文章记录了在Vue中实现修改手机号和邮箱的大致流程,包括使用过滤器部分隐藏展示的手机号和邮箱,以及通过点击触发路由跳转的便捷方式。文章还描述了旧号码和新号码验证的界面实现,其中验证码由后端生成并通过弹窗展示给用户,未来可以接入真正的手机验证码接口。此外,还提供了修改邮箱的页面效果截图,并强调了学习是一个永无止境的过程。
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
|
2天前
|
安全 算法 机器人
双重防护!红娘相亲app搭建开发,婚恋交友系统登录方式,密码+验证码的优势
在婚恋交友系统中,密码和验证码是两种重要的安全措施。密码用于验证用户身份,应设置为复杂组合以防止未经授权的访问;验证码则通过图形或字符识别,防止自动化攻击如暴力破解和注册机器人。两者同时开启可显著提高安全性,防止暴力破解和自动化注册,提升用户信任感。建议要求强密码、定期更新验证码样式,并在可疑登录时增加验证码复杂性。这样既能保障用户信息安全,又兼顾了用户体验。 ![交友11111.jpg](https://ucc.alicdn.com/pic/developer-ecology/hy2p6wcvgk4oe_c9eb8d6eb8144866b0cd1d96ffb0c907.jpg)
|
2月前
jcaptcha集群时验证码不能验证的问题
jcaptcha集群时验证码不能验证的问题
36 3
|
2月前
|
存储 前端开发 Java
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
本文介绍了使用Kaptcha插件在SpringBoot项目中实现验证码的生成和验证,包括后端生成验证码、前端展示以及通过session进行验证码校验的完整前后端代码和配置过程。
311 0
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
|
7月前
|
JavaScript Java
java生成验证码并进行验证
java生成验证码并进行验证
|
4月前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
6月前
|
前端开发 JavaScript
阿里云验证码2.0 验证时报错 前端页面获取的验证参数有问题,动态JS加载失败,请问怎么解决啊?急,急,急。
用户反馈校验时遇到错误,日志显示验证码参数获取异常。采用无痕验证,失败后,返回`{captchaResult:false,bizResult:false}`,未触发滑块二次验证。
|
安全 数据安全/隐私保护
SpringSecurity5.7+最新案例 -- 用户名密码+验证码+记住我······
根据最近一段时间的设计以及摸索,对SpringSecurity进行总结,目前security采用的是5.7+版本,和以前的版本最大的差别就是,以前创建SecurityConfig需要继承WebSecurityConfigurerAdapter,而到了5.7以后,并不推荐这种做法,查了网上一些教程,其实并不好,绝大多数用的都是老版本,所以出此文案。一些原理什么的,就不过多说明了,一般搜索资料的,其实根本不想你说什么原理 T·T。
189 0
SpringSecurity5.7+最新案例 -- 用户名密码+验证码+记住我······
|
安全 开发工具 UED
告别验证码烦恼,轻松完成文字点选验证
文字点选验证码,作为一种创新的验证方式,正在逐渐取代传统的输入文字或数字的验证方式,为用户带来了更简单、直观的验证体验。它通过点击包含特定文字或物体的图片来完成验证,摆脱了繁琐的输入过程,让用户告别验证码的烦恼。
|
前端开发
图形验证码验证行式的笔记
最近在做关于验证码项目的时候,从交互的角度梳理了验证码的验证行式,今天总结一下验证码在产品中出现的验证行式。
图形验证码验证行式的笔记