`
cowgun888
  • 浏览: 6577 次
  • 性别: 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密码生成。 首先,MD5是一种单向哈希函数,它将任意大小的数据转换为128位的哈希值,通常以32位的十六进制字符串表示。其优点是计算速度快,但缺点是容易遭受彩虹...

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

    本案例主要关注的是如何利用Node.js的crypto模块来进行密码加密与解密,并且涉及到了密码加盐(salt)的策略。以下是对这两个关键知识点的详细说明。 首先,我们来看密码加密。在Node.js中,crypto模块是内建的,...

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

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

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

    ### 关于Python中密码加盐的学习体会小结 在网络安全领域,为了保护用户信息的安全,密码的加密方式显得尤为重要。本文将详细介绍如何在Python中使用密码加盐技术,并结合具体的代码示例进行深入分析。 #### 密码...

    java实现Md5加盐加密算法

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

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

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

    thinkphp5登陆密码修改demo

    为了安全,通常会使用哈希加盐的方式存储密码,防止明文密码泄露。 4. **多设备支持**:多设备支持意味着该系统能适应不同尺寸和类型的设备,如手机、平板和桌面电脑。Bootstrap的响应式设计使得布局能够自动调整以...

    密码哈希盐加密例子

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

    加盐加密保存的通用方案

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

    MD5加盐算法 含mysql数据库

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

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

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

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

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

    MD5加密实例(加盐)

    但需要注意的是,由于MD5本身存在碰撞问题(即不同的输入可能会产生相同的哈希值),现代密码学建议使用更安全的哈希函数,如SHA-256或bcrypt,配合加盐,以提供更强的密码保护。 在压缩包中的"MD5的实例(加盐)...

    (Java密码加密)MD5方式

    因此,现代密码存储通常采用更安全的算法,如SHA-256或bcrypt,并结合加盐(salt)和多次迭代以提高安全性。 总的来说,MD5在Java中的使用提供了一种简单的密码加密方式,但随着技术的发展,开发者应考虑使用更强大...

    Jmeter对接口测试入参实现MD5加密

    4. 在请求参数中引用这个变量,如`${encryptedPassword}`,然后发送请求,你会看到原始密码已被加密为MD5值。 ### Beanshell脚本 除了使用内置函数,我们还可以利用BeanShell脚本来实现MD5加密。BeanShell是一种...

    AES 128位加解密C++源码(加盐)

    "加盐"是密码学中的一个术语,用于增强密码或密钥的安全性。在AES加解密中,盐通常是一个随机的预处理值,与原始密钥结合,生成一个新的、唯一的工作密钥。这样即使相同的明文和密钥被多次使用,每次加密的结果也会...

    一个安全的文件加密工具,支持对任意文件进行加密和解密操作

    - 密码加盐处理 - 密钥安全存储 4. 用户界面 - 简单易用 - 进度显示 - 操作状态反馈 ## 使用要求 - Python 3.6+ - 需要安装的库: ```bash pip install cryptography ``` 或 ```bash python -m pip ...

    密码存储中MD5算法的安全性分析2

    综上所述,MD5算法在密码存储中的安全性已不再可靠,需要结合盐值和其他强化措施,如使用更安全的哈希算法(如SHA系列),以及密码加盐、迭代哈希等方法,以提升密码存储的安全性。在实际应用中,应当重视密码策略,...

Global site tag (gtag.js) - Google Analytics