对用户密码进行加盐处理(转)

对用户密码进行加盐处理

按:以下还是炒冷饭,如果您对加盐了解就不用往下看了,以免浪费宝贵时间。
如果不了解下文部分细节的话,您可以参考这篇文章:使用MD5对存放在数据库中用户密码进行保护

直接对重要数据进行MD5处理后,反向解密确实难度很大,但还是可以找出破绽的,请看下图:

如果名为李自成的用户可以查看数据库,那么他可以观察到自己的密码和别人的密码加密后的结果都是一样,那么,别人用的和自己就是同一个密码,这样,就可以利用别人的身份登录了。

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

// 对密码进行加盐后加密,加密后再通过Hibernate往数据库里存
        String changedPswd=DigestUtils.md5Hex(name+pswd);

就是这样简单,上面代码中盐就是用户名,可以的话还可以用用户注册时的邮件,注册时间等非空信息(如果是空信息这个加盐处理会失效)。

下面是数据库中两个用户的记录,他们的实际登录密码都是123456,但光看用户记录是完全看不出来的。这下别有用心的人打开数据库看到的密码都完全不一样,他以前的手段就失效了。

加盐就是这样简单,感谢您看到这里。

转自: http://www.blogjava.net/heyang/archive/2010/11/28/339233.html

对用户密码进行加盐处理(转)

时间: 2024-10-10 02:48:53

对用户密码进行加盐处理(转)的相关文章

第三篇 ubuntu下,mysql 的root用户密码忘了怎么办?

好长一段时间没有使用ubuntu了,今天进来玩玩,结果连mysql的root用户密码都忘记了.就上网找了一下,发现如下解决办法,试了一下,可行!记录在此,环境问题,是需要注意的. Ubuntu Server 12.04 LTS,用 apt-get 安装 MySQL 过程中没有提示设置 root 账号的密码,安装完成后发现 root 空密码无法登录. 解决方案: 其实 debian 系的 MySQL 安装过程中会设置一个默认的账户,这个文件里保存了默认账号的信息 cat /etc/mysql/de

Linux下 mysql忘记root用户密码

今天在接收一台MYSQL服务器的时候发现忘记MYSQL的root用户的密码,查找资料发了各种文档里面也没有root用户密码,因此需要修改root用户密码. 首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库.因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息.最安全的状态是到服务器的Console上面操作,并且拔掉网线. 1.修改MySQL的登录设置: 在[mysqld]的段中加上的s

3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令

3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令 3.4 usermod命令 id aming 查看用户 uid  gid 增加扩展组 usermod -G 如果继续添加会覆盖之前的扩展组 同时指定俩个 扩展组 必须要-G -g 不行 3.5 用户密码管理 passwd 有set uid 属性 这里只要是 ! .*    说明用户不能登录 密码是有问题的 锁定用户密码 passwd -l 锁定用户aming密码 解锁!就没有了 一个! 2个!!都说明用户被锁定了,不

linux 中usermod、用户密码管理及密码随机生成工具mkpasswd

一. usermod命令 1. usermod更改用户的属性 usermod -u 111 user1 更改用户user1的UID为111 usermod -g grp2 user2 更改user2的组为user2 usermod -d /home/test user3 更改user3的家目录为/home/test/ usermod -s /sbin/nologin user2 更改user2登录的shell 为不能登录 2. id user1 查看用户UID,GID,扩展组等信息 一个用户可以

passwd修改用户密码

语法:passwd[username] 等创建完账户后,默认是没有设置密码的.虽然没有密码,但该账户同样登录不了系统.只有设置好密码后才可以登录系统.在为用户创建密码时,安全起见,请尽量设置复杂一些. 建议按照以下规则设置密码: (1)长度大于10个字符: (2)密码中包含大小写字母数字以及特殊字符 * .& .%等: (3)不规则性(不要出现happy.love.Linux.7758520等等单词或者数字:) (4)不要带有自己名字.公司名字.自己电话.自己生日等. [[email prote

用户密码加密存储十问十答,一文说透密码安全存储

我们数据库的权限管理十分严格,敏感信息开发工程师都看不到,密码明文存储不行吗? 不行.存储在数据库的数据面临很多威胁,有应用程序层面.数据库层面的.操作系统层面的.机房层面的.员工层面的,想做到百分百不被黑客窃取,非常困难. 如果密码是加密之后再存储,那么即便被拖库,黑客也难以获取用户的明文密码.可以说,密码加密存储是用户账户系统的底裤,它的重要性,相当于你独自出远门时缝在内衣里钱,虽然你用到他们的概率不大,但关键时刻他们能救命. 那用加密算法比如AES,把密码加密下再存,需要明文的时候我再解密

zabbix用户密码修改

zabbix完装完成默认用户名为admin 用户密码修改方法为 use zabbix; desc users; select alias,passwd from users; select *from zabbix.users where alias='admin' update zabbix.users set passwd=md5('zabbix') where userid=1; update zabbix.users set alias='zabbix' where userid=1;

Centos6.6系统root用户密码恢复案例

1.重新启动主机后,在出现Grub菜单时按上下键取消倒计时 2.进入到内核引导界面按e键如下所示: 3.将鼠标定位到Kernel这一行按e键 4.在行尾输入"single"也可以换成字母"s"或者数字"1"都表示进入单用户模式,然后回车. 5.按b键将系统引导进入单用户模式,不需要密码即直接进入shell环境. 6.在单用户下,直接运行"passwd root"命令重新设置root用户密码即可!(或者直接修改/etc/shad

PowerShell AD用户密码过期脚本更新版

越接触PowerShell感觉越喜欢这门脚本语言,简单易懂,功能强大,操作也方便,同时得益于微软的鼎力支持,在不同的微软产品平台都可以使用,如果想研究微软这方面的东西,会点PowerShell绝对是好处多多. 之前也写了一些关于PowerShell的文章,也相当于是自己不断摸索的过程,最近也陆陆续续写了一些脚本,有一些是工作环境里使用的,没办法拿出来分享,有一些是不同环境里都可以使用的,所以决定拿出来分享一下,脚本都很简单,写的也绝对算不上专业,只是基本的功能可以实现. 今天和大家分享的是写的一