1.用户登录时,用js对密码+随机码,进行md5,然后再传送到服务端.保证每次传送的字符串都不同,这样就算被窥探到信息,密码也不会被破.步骤如下:
在登录页面,先对输入密码进行MD5加密,再对随机码进行MD5加密,再把加密后的两个字符串拼起来,再进行一次MD5加密,传到服务端.服务端进行验证时,先取出DB中的密码,再从session中取出随机码,将随机码MD5后与从DB取出的密码拼成一个字符串,再与客户端传过来的比较,相同则登录成功.
客户端MD5加密的js包可到:http://pajhome.org.uk/crypt/md5/index.html下载.
js加密码方法:hex_md5("密码");需引入md5.js文件(在附件中)
服务端MD5加密的java类如下:
public class Md5 {
public static String encrypt(String source){
StringBuffer sb = new StringBuffer("");
try {
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(source.getBytes());
byte[] b = messageDigest.digest();
sb = new StringBuffer(2 * b.length);
for(int i = 0 ; i < b.length ; i ++){
int low = (int)(b[i] & 0x0f);
int hight = (int)((b[i] & 0xf0) >> 4);
sb.append(Integer.toHexString(hight));
sb.append(Integer.toHexString(low));
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return sb.toString();
}
}
2.新增用户,修改密码,都是在客户端先把密码进行MD5加密后,再传到服务端.
这样做能保存登录时足够安全(中间人攻击除外),但是新增用户,修改密码时,如果用户加密后的密码被窃取,依然存在隐患.
3.随机码用kaptcha(或jcaptcha),下载地址为:http://code.google.com/p/kaptcha/
附:javar 的MD5加密简便方法:
package org.apache.commons.codec.digest;
String passwordMd5 = DigestUtils.md5Hex("123456");
分享到:
相关推荐
功能和界面见介绍https://jiuai.blog.csdn.net/article/details/115982294 看清需求后如需要了再下载!自行决定不喜勿喷,欢迎指导
MD5加密函数 for javascript 32位md5加密。例如用在用户登陆时的密码,可以在客户端...或者在某些特定的情况下用来生成风格统一的随机码---用时间组合随机数组成的字符串来进行md5加密,则得到一个类似guid的唯一编码。
MD5加密,可以附带16位、19位、32位随机码做盐值
原理:对明文使用32位随机数组取指纹后重组字符串,再取md5值 echo '无法破解的MD5密文:'. Encrypt_PassWord('password');//无法通过字典破解原文的随机加密密文 echo "\r\n \r\n"; echo '可以被字典破解的MD...
1、JAVA MD5加密,AES加密解决; 2、项目需求,根据用户ID,软件名称,时间,硬件ID生成随机6位码,用户ID是可逆的。 基本思路是,两位存储用户ID,其他四位随机加密码,然后再讲两位 和四位二次混淆加密。
一个多次MD5加密限制自动登录的例子,外加验证码自动识别。成功自动登录。。。。源代码公开。 原文:http://club.excelhome.net/thread-962615-1-1.html 理解客户端和服务器的的会话顺序 step 1,客户端向服务器...
不知道大家知不知道,在开发的时候如果直接给密码散列,黑客可以通过查散列值字典(例如MD5密码破解网站),得到某用户的密码。但如果加上salt后就会难上很多,即便是你获得了其中的salt和最终密文,破解也是相当麻烦...
Mybatics,前端AJAX技术,SpringBoot、md5加密算法实现登录注册,在后端随机生成Salt值,然后采用MD5算法加密密码,将密码密文和salt值存入MYSQL数据
一个多功能加密解密工具,支持QQtools、MD5、DES、AES、SHA256、Base64 等多种加密解密方式,并支持随机盐,附有源码,可直接编译使用。
得到随机安全码(哈希加密)。 得到随机哈希加密字符串 哈希加密一个字符串 RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证
MD5 的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。 作用:把一个任意...
不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却...
•Android数据加密之MD5加密 •Android数据加密之Base64编码算法 •Android数据加密之SHA安全散列算法 什么是Rsa加密? RSA算法是最流行的公钥密码算法,使用长度可以变化的密钥。RSA是第一个既能用于数据...
添加一个Button 控件,用来使用MD5算法对输入的数据进行加密。 (3)程序主要代码如下: public string Encrypt(string strPwd) { MD5 md5 = new MD5CryptoServiceProvider(); //创建MD5 对象 byte[] data = System....
1、MD5加密 2、根据CPU硬盘获取机器码 3、加密数据报 4、口令加密BAT、EXE、RAR 5、使用强名称标识软件 6、伪随机数加密 7、文件加密 8、异或加密数字 9、注册码注册机制
在线密码生成器(CipherMaker)是以.net进行开发的密码生成器,它可以随机的生成任意密码并加密成MD5格式,也可对指定的密码进行MD5的加密,还可对原有的加密字符串进行大小写的转换。在线密码生成器(CipherMaker) v...
01>使用多位伪随机钥码加密,可加密任何类型文件. 02>加密与解密与破碎,...06>校验:MD5与CRC32校验码比较(与通用的MD5有差异). 07>密码可以是文本或文件,可以设置两组密码是否一致. 08>可以直接用鼠标拖拉文件至窗体.
1. 两次MD5加密 将用户输入的密码和固定Salt通过MD5加密生成第一次加密后的密码,再讲该密码和随机生成的Salt通过MD5进行第二次加密,最后将第二次加密后的密码和第一次的固定Salt存数据库 好处: 第一次作用:...
举例:假如密码为 123456789 ,固定字符串为jb51, 那么加密规则为:md5(md5(‘123456789′).’jb51’); 得出的结果就是:96122ff0dd306c912aab15adccf21df1 Discuz密保加密规则: 加密过程是value的值先加密一...