当做用户登陆、注册的用户名与密码加密时,可以在前端用js定义md5函数对值做哈希,如此用户提交表单后,在网络中路由间传递的便是简单加密后的信息,而非明文信息,等表单提交到后台后,可用md5再次对其进行加密,再行存储。还有很多更稳妥有效的方法,有待学习,先将对md5的初步学习结果记录下来,以备后用。
1.前端 md5.js
1 | function md5(string){ |
在login.jsp页面里引用示例:
1 | <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> |
2.后台Java 使用MD5算法
1 | public String md5Encode(String inStr){ |
如此便可得到32位的加密后的16进制字符串,亲测对中英文数字等前后端计算结果一致,即用js和用Java加密一次获取到的结果一致,以前找到过两个md5.js计算中文的md5值时结果与后台采用Java的结果不一致,但上文中此版可以。还有,为提高安全性,还可为md5加盐值,例子见此贴
一种简单的给MD5加盐算法
在自己做demo的时候,将用户的md5摘要做rowkey,用户的密码的md5摘要的第11-15位替换为rowkey对应的11-15位进行存储,之前看到有说可以将用户名和密码相加求MD5后再截取固定长度也不错。