`
cowgun886
  • 浏览: 957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

密码加盐

阅读更多
我们以前的加密方法是否对这种行为失效了呢?其实只要稍微混淆一下就能防范住了,这在加密术语中称为“加盐”。具体来说就是在原有材料(用户自定义密码)中加入其它成分(一般是用户自有且不变的因素),以此来增加系统复杂度。当这种盐和用户密码相结合后,再通过摘要处理,就能得到隐蔽性更强的摘要值。下面请见代码:
// 对密码进行加盐后加密,加密后再通过Hibernate往数据库里存        String changedPswd=DigestUtils.md5Hex(name+pswd);

就是这样简单,上面代码中盐就是用户名,可以的话还可以用用户注册时的邮件,注册时间等非空信息(如果是空信息这个加盐处理会失效)。
下面是数据库中两个用户的记录,他们的实际登录密码都是123456,但光看用户记录是完全看不出来的。这下别有用心的人打开数据库看到的密码都完全不一样,他以前的手段就失效了。

因为密码是md5处理的密码加用户名,因为用户名都不相同,所以即使密码相同的用户,保存到数据库中密码也是不同的。

import org.apache.commons.codec.digest.DigestUtils;

public class AtomicDemo extends Thread{

public static String key="keys";
public static void add(int i) throws InterruptedException{
System.out.println(DigestUtils.shaHex(key)+"======"+i+"======="+DigestUtils.shaHex(key+i));

}
public void run() {
for (int i = 0; i < 10; i++) {
try{
add(i);
sleep(10);
}catch(Exception e){
e.printStackTrace();
}
}
}
public static void main(String[] args) throws Exception{
Thread thread=new AtomicDemo();
thread.start();
}


}

运行结果

5944ae25418ceabcf285dca1d721b77888dac89b======0=======fb61f74ca71dc6d48c7457f5e16b3552f06f0c8d
5944ae25418ceabcf285dca1d721b77888dac89b======1=======5c26398bddc6a83d04a0f2c99b6d48aaaeefca7d
5944ae25418ceabcf285dca1d721b77888dac89b======2=======054a54de9e39630979ffccad0294bccb9e648ea2
5944ae25418ceabcf285dca1d721b77888dac89b======3=======a32cfde3c1f0041ac5f5d4b8d89522b5094c9804
5944ae25418ceabcf285dca1d721b77888dac89b======4=======de5710c8cedbf9b2c4ae26f10ed845b15118db01
5944ae25418ceabcf285dca1d721b77888dac89b======5=======c1523fc3afabfb5db883605324252c79787938b9
5944ae25418ceabcf285dca1d721b77888dac89b======6=======60803f24f49154d9e65a4acf9c7c6b1cb130c8f2
5944ae25418ceabcf285dca1d721b77888dac89b======7=======881a14c6013d51ca24f152973a1fd51da37d1143
5944ae25418ceabcf285dca1d721b77888dac89b======8=======ef15a93a59f824a73fe1c054140f15f200b8a4b2
5944ae25418ceabcf285dca1d721b77888dac89b======9=======d44cc54ccf1e357922c5878df32e078084b0c531
可以比对出加盐之前和之后的结果
分享到:
评论

相关推荐

    java生成md5密码加盐

    java、springboot生成加盐md5密码

    salt_hash.zip_Node.js_密码加密与解密_密码加盐

    1.使用Node.js中的crypto模块加密用户密码和加盐,加密密码和原始密码验证。 2.使用Node.js中的crypto模块对字符串进行加密和解密,采用非对称加密方式。

    计算机后端-PHP视频教程. php之thinkphp132 注册密码加盐.wmv

    计算机后端-PHP视频教程. php之thinkphp132 注册密码加盐.wmv

    java实现Md5加盐加密算法

    对接接口时用到的一种常用加密算法,常用于验证签名,使用shiro-all-1.4.1.jar,可自行下载

    关于python中密码加盐的学习体会小结

    给密码加密是什么:用户注册的密码一般网站管理人员会利用md5方法加密,这种加密方法的好处是它是单向加密的,也就是说,你只有在提前知道某一串密码对应的md5加密码,才能反...给密码加盐是什么:见上面提到的,下面内

    加密解密工具支持随机盐(带源码)

    一个多功能加密解密工具,支持QQtools、MD5、DES、AES、SHA256、Base64 等多种加密解密方式,并支持随机盐,附有源码,可直接编译使用。

    MD5加盐算法 含mysql数据库

    一个简单的MD5加盐算法,对存入数据库的密码进行加密达到保护用户信息的作用

    密码哈希盐加密例子

    密码哈希盐加密测试例子,一个不可反算的,绝对安全的加密

    加盐加密保存的通用方案

    网络安全问题日益严峻的今天,原始密码和简单非可逆加密算法已经不足以提供安全的系统服务,所以加盐加密技术使用越来越普遍。 本文档系统的介绍了加盐加密的原理和实现方案。 由四哥许坤整理发布,...

    level-users:存储和获取用户,为他们的密码加盐,将它们保存到磁盘等

    对他们的密码加盐,将它们保存到磁盘。 用法 将 leveldb 实例传递给Users构造函数。 如果您的数据库在网络上,我建议使用来存储数据库的元数据和 。 有关客户端支持,请参阅 。 var db = level ( './db' ) var ...

    C#使用 Salt + Hash 来为密码加密

    本文主要介绍了几种常见的破解密码的方法,为密码加盐(Salt)以及在.NET中的实现等。具有一定的参考价值,下面跟着小编一起来看下吧

    (Java密码加密)MD5方式

    可以对登录用户的密码进行加密,起到保护密码安全。 之前上传的那个有点乱,换成了java源码打包的。

    C# ADO.net WPF access 数据库 客户管理系统

    密码加盐使用配置文件处理 0329 1\直接给登录窗口赋默认值 2\给"序号"赋连续值 3\点击新增或者编辑按钮后保存数据,自动刷新数据. 20140330 1\增加新增或者编辑客户时,效验是否为空,为空时更改输入框颜色 2\增加客户...

    php加盐密码对比.rar

    php有一个加密函数crypt(),有的密码就是用这个函数加密后储存例如“通达OA” 如果通过登录网页暴力检查弱密码的话,会占用服务器性能,用这个软件可以把数据库内的密码导出后进行对比。

    深入密码加salt原理的分析

    本篇文章是对密码加salt原理进行了详细的分析介绍,需要的朋友参考下

    Flask框架中密码的加盐哈希加密和验证功能的用法详解

    密码加密简介 密码存储的主要形式: ... 加盐哈希加密:加密时混入一段“随机”字符串(盐值)再进行哈希加密。即使密码相同,如果盐值不同,那么哈希值也是不一样的。现在网站开发中主要是运用这种加密方法。

    Typecho v1.0.14 正式版

    使用PHP password hashing framework代替原来的密码加盐函数;增加对多语言的支持;众多安全加固;将前后端markdown解析库更换为标准的CommonMark,使其展现效果完全一致;小幅改进编辑器ui;其他bug修复。

Global site tag (gtag.js) - Google Analytics