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

简介:
自动生成密码:
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,如需转载请自行联系原作者



相关文章
|
存储 NoSQL 数据库
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
这篇文章讲述了在分布式微服务系统中添加用户注册和登录功能的过程,重点介绍了用户注册时通过远程服务调用第三方服务获取短信验证码、使用Redis进行验证码校验、对密码进行MD5加密后存储到数据库,以及用户登录时的远程服务调用和密码匹配校验的实现细节。
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
|
JavaScript NoSQL Redis
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
这篇文章记录了在Vue中实现修改手机号和邮箱的大致流程,包括使用过滤器部分隐藏展示的手机号和邮箱,以及通过点击触发路由跳转的便捷方式。文章还描述了旧号码和新号码验证的界面实现,其中验证码由后端生成并通过弹窗展示给用户,未来可以接入真正的手机验证码接口。此外,还提供了修改邮箱的页面效果截图,并强调了学习是一个永无止境的过程。
Vue中实现修改邮箱、手机号等流程的大致过程、验证码由后端的redis生成验证(版本1.0)
|
12月前
|
人工智能 算法 数据安全/隐私保护
[oeasy]python080如何生成验证码_随机数字密码_真随机
本文介绍了如何生成随机验证码的过程,从简单的随机数字生成到包含数字、大小写字母及符号的复杂验证码。通过 Python 的 `random` 和 `string` 模块,逐步扩展字符集并确保结果满足特定要求(如包含各类字符)。同时探讨了随机数生成的本质,指出计算机中的“随机”实际上是基于算法和种子值的伪随机,并非真正的物理随机。最后总结了验证码的生成原理及其在实际应用中的意义,为读者揭开日常生活中验证码背后的编程逻辑。
481 8
|
JavaScript Java
java生成验证码并进行验证
java生成验证码并进行验证
|
网络协议 JavaScript 前端开发
使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名1
使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名
949 0
|
存储 前端开发 Java
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
本文介绍了使用Kaptcha插件在SpringBoot项目中实现验证码的生成和验证,包括后端生成验证码、前端展示以及通过session进行验证码校验的完整前后端代码和配置过程。
3176 1
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
|
安全 开发工具 Python
滑动拼图验证,摆脱烦人的验证码输入
你最近是否遇到过令人头疼的验证码?为何不让滑动拼图成为你的新选择呢?通过完成一个有趣的滑动拼图来验证你的身份,既能锻炼大脑,又能保护你的隐私。
滑动拼图验证,摆脱烦人的验证码输入
jcaptcha集群时验证码不能验证的问题
jcaptcha集群时验证码不能验证的问题
163 3
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
前端开发 JavaScript
阿里云验证码2.0 验证时报错 前端页面获取的验证参数有问题,动态JS加载失败,请问怎么解决啊?急,急,急。
用户反馈校验时遇到错误,日志显示验证码参数获取异常。采用无痕验证,失败后,返回`{captchaResult:false,bizResult:false}`,未触发滑块二次验证。

热门文章

最新文章