JavaWeb学习笔记之表单数据处理类
2015-09-26 10:13
267 查看
一、*在现实安全注册与登陆操作中,对表单的校验基本都通过JavaScript脚本语言进行校验。但是,javascript脚本语言也存在一些表单校验的局限性。表单处理类主要执行两方面的内容:一方面是将表单信息中的密码进行MD5转码;另一方面是校验表单中的信息是否存在非法的字符,在这里主要校验SQL注入的非法字符。
1、创建将指定字符串进行MD5转码的encode()方法
import java.security.*;//为安全框架提供类和接口 public class Encrypt { //创建指定字符串进行MD5转码的encode()方法,该方法返回值为String类型,该返回值为进行MD5转码后的字符串。 public static String encode(String str){ if(null == str){ return null; } StringBuilder sb = new StringBuilder();//创建一个可变字符序列的对象 try { //创建具体指定算法名称的信息摘要 MessageDigest code = MessageDigest.getInstance("MD5"); code.update(str.getBytes()); //使用指定的字节数组对摘要进行最后的更新,然后完成摘要计算 byte [] bs = code.digest(); //进行指定算法的计算 for(int i=0;i<bs.length;i++){ int v= bs[i] & 0xFF; if(v < 16){ sb.append(0); } //向可变字符序列添加转码后的字符串 sb.append(Integer.toHexString(v)); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return sb.toString().toUpperCase(); } }
首先生成MD5信息摘要MessageDigest对象,然后调用digest()方法对字符串的字节数进行加密,得到一个加密后的字节数组,该字节数组被转换成十六进制的字符串,变成大写形式,便生成了一个长度为32位的密码字符串
2、JUnit测试代码
public class MD5test { @BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void tearDownAfterClass() throws Exception { } @Test public void test() { String str1 = "abcd"; String str2 = Encrypt.encode(str1); System.out.println("转码前的字符串:"+str1); System.out.println("转码后的字符串:"+str2); }
测试结果
转码前的字符串:abcd 转码后的字符串:E2FC714C4727EE9395F324CD2E7F331F
3、创建校验指定字符串是否存在非法字符
public static boolean isValidInput(String str){ return str.matches("[a-z0-9]+"); }
相关文章推荐
- test7.21
- Struts2标签之bean
- JavaWeb学习笔记之数据库连接
- test7.20
- JAVA中写时复制(Copy-On-Write)Map实现
- Spring学习篇01-Spring容器相关基本概念
- java界面项目----问题篇
- JVM/JDK/JRE/IDE—区别
- 解决Eclipse新建Android工程出错
- spring mvc 配置web.xml servlet.xml文件配置以及出现异常的解决方案
- java的数字相加
- 第一次编辑JAVA
- JAVA编译中拒绝访问的问题及解决方案
- Java笔记---Java概要
- struts2中文件上传与下载
- Java核心技术第3章(3)
- test7.19
- test7.18
- Java基础知识强化之集合框架笔记02:集合的继承体系图解
- eclipse 制作静态柱状图