`

对旧的用户密码系统的改造

    博客分类:
  • md5
md5 
阅读更多

 

 看到大家评论较多,就把方案加强了下 


旧的系统密码存储的是md5(password),理论上md5在有限的时间空间内是不可逆的(实际上已经有人可以了) 
一般使用md5(password),加加密后的密码进行保存 
但这会有一个比较严重的问题,比如密码是123456的用户,存储的密码值都是e10adc3949ba59abbe56e057f20f883e 
这样就会导致,如果被暴库后,可以拿已知的字典表来直接匹配了(所有e10adc3949ba59abbe56e057f20f883e的用户密码都是123456,这不是废话么) 

一般的处理方式是加盐(salt),也就是md5(相对不变的内容+密码),这样即使密码一样,存储的内容也不一样,“相对不变的内容”一般会是用户名 
这样的话,存储的是md5(userName+password) 
这样就会好很多了,但是如果你的系统以前使用的md5(password),那么,你本身并没有存储password,要升级到这个方案,基本是不可行的。 

md5(userName+md5(password)),这样的方案就优雅些了,也加了盐,也可以从原有的系统进行平滑升级 
更好的方案:md5(userName+md5(password)+固定的二十位以上的字符串) 
这样的话,密码的安全不再依赖于密码本身的简单或者复杂了,更多的是依赖于这二十位的字符串了,只要固定的字符串足够强壮,以至于目前的密码库都不存在此内容,那么及时用户使用了弱口令,也不影响安全。
 

 

贴一点代码吧,附件有完整的代码和jar包

  1. package info.frady;  
  2.   
  3. import org.apache.commons.codec.digest.DigestUtils;  
  4. public class CommonTest {  
  5.   
  6.     public static void main(String[] args) {  
  7.         String userName="frady";  
  8.         String password="123456";  
  9.         System.out.println(DigestUtils.shaHex(password));//sha(password),很少这么干  
  10.         System.out.println(DigestUtils.md5Hex(password));//md5(password),通用的做法  
  11.         System.out.println(DigestUtils.md5Hex(userName+password));//md5(userName+password),加强的做法,加了用户名做salt  
  12.         System.out.println(DigestUtils.md5Hex(userName+DigestUtils.md5Hex(password)));//md5(userName+md5(password)),兼容旧md5(password)升级的安全做法,用用户名做salt  
  13.     }  
  14. }  

 

补充下: 
1.此方案适合密码存储的是md5(password)旧系统的改造,一般这样的系统,没有机会再生成md5(password+salt)了,因为旧的系统中根本没有password!(如果你的系统中还有password,那你的代码我就不好评价了) 
2.基于function的隐藏一般来讲意义不大,你所知道的function大家都能知道。我们需要的是告诉他function,但是他确逆不回来的,或者逆向难度非常大。md5就具备这样的特征,function大家都知道,但是逆向的成本非常大。 
3.不通过逆向,用字典表直接查找匹配是md5目前最大的安全问题,但此方案使用的是md5(userName+md5(password)),如果userName至少是4位的话(注册的时候一般都有这个要求),那么userName+md5(password)至少得是36位了,即使我的userName是abcd,密码是abc123,好吧假设你是个有心的黑客,而且你有个强大的多的字典,以至于你的字典表里竟然有md5(abcde99a18c428cb38d5f260853678922e03),然后我确实得承认你胜利了。 
这意味着即使username是四位,你的密码库得比你本来的库庞大(26个字母+10个数字)*(36)*36*36=1679616倍。167万倍的密码库,哥们,再说磁盘非常廉价,你也有点搞笑了。

 

转自:http://mushme.iteye.com/blog/1883682#bc2314824

 

 

分享到:
评论

相关推荐

    超市订单管理系统源码-北大青鸟(学习使用)

    系统简介:主要功能介绍:(1)订单管理模块;(2)供应商模块;(3)用户管理模块等。 项目技术:主要运用Spring+Spring MVC+... 密码模块:主要包含对当前登入用户密码进行修改操作; 本资源仅供学习使用。欢迎下载。

    易语言棚户区改造管理系统

    易语言棚户区改造管理系统源码,棚户区改造管理系统,记录保存密码信息,取出保存密码信息,读加密配置项,写加密配置项,取加密配置节名,取加密配置项名,删除加密配置小节,配置文件_写用户信息,配置文件_删除用户,配置...

    免改造应用的国密数据安全实践.pdf

    本议题开创性的提出一种面向切面加密——易实施的实战化数据防护体系,可实现免开发改造方式快捷部署,对企业大规模应用系统实施数据安全防护。从安全技术上,用高性能国密技术重构数据流动边界,提供锚点解密的防绕...

    优秀商用密码应用方案与建设方案并案例汇编.zip

    重要网络和信息系统密码应用方案模板 ...同时,采用身份认证技术对用户进行身份验证,确保只有授权用户才能访问敏感数据。 密钥管理:建立完善的密钥管理体系,对密钥进行生成、存储、备份和更新等操作,确保密.....

    爱立信助力国家重要政府机构升级改造通讯网

    同时,根据用户的需求,充分考虑了系统的安全性,设立了不同的安全措施,系统具有五级以上的密码控制。关键的主处理器、交换网络,主电源等尽可能考虑适当的、科学的冗余,从而保证系统某些关键部分发生故障时不会...

    网软志成分类信息网站系统.net官方商业版

    系统集成众多字段发布格式,用户可对不同的发布格式进行不同的定义,如房屋出租,有“租金”“面积”“小区”“楼层”“朝向”“年份”“配置信息”等内容。 支持多模板与在线模板修改 系统使用模板与程序分离的...

    最新单片机课程设计电子密码锁设计通信班-免费下载.doc

    由用户通过连接单片机的矩阵键盘输入密码 ,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确 ,然后控制引脚的高低电平传到开锁电路控制是否开锁。系统整体框图如图2-1所示。 图2-1 ...

    分类信息系统正式版下载

    系统集成众多字段发布格式,用户可对不同的发布格式进行不同的定义,如房屋出租,有“租金”“面积”“小区”“楼层”“朝向”“年份”“配置信息”等内容。 支持多模板与在线模板修改 系统使用模板与程序分离的...

    东旭网络问卷调查系统

    2、AJAX部分改造前后台成功,更好的用户体验 3、全站模板化,对单个问卷可以设定自定义模板 4、截断跳转更新优化 5、留言部分的模板编辑 6、重写上传代码 7、修复多个bug 8、修复留言的模板问题 注:2.4版以后采用...

    网络管理中网络安全策略的概述.doc

    (2) 增添一条系统日志记录,一般是在验证某用户对某资源是否有某种操作权限之后,记录 的信息包括: 用户名称 用户IP地址 用户登录时间 操作名称 欲实施的访问权限 操作成功或失败 操作时间 (3) 自定义系统日志记录...

    开源啦-提成销售管理系统-学界面的同志可以参考下

    登录界面 ... 默认密码:admin888 ...可以修改自己的登录密码,管理员权限的人员可以进行用户帐户的添加。 如果系统出现问题,数据出现问题 或者需要改造可以联系我: Email:zhangze6000@163.com QQ:405150352

    基于jsp的人力资源管理系统的设计与实现-源代码无DRW包

    为了保证公司人力资源管理系统符合用户的需求,必须全方位认真了解现有职员信息管理工作的过程,确保系统投入使用后,测评工作可以保质保量完成。通过对公司的实地观察、跟班作业、与公司领导及普通员工的面谈以及...

    客客威客系统KPPW v2.5 GBK Beta.zip

    KPPW2.0对近一年多来站长们提交的各种需求细节进行了深入考虑,在整个系统中新增了不少细节功能,如威客地图、多语言包、其他账号登陆、短信通知、威客工具箱、广告系统改造等让网站功能变得丰富,也为站长盈利带来...

    django3.2框架+vue开发的完整问卷调查系统 django-question-master.zip

    本项目是一个简单的django问卷调查系统,拥有完善的权限机制,以及答卷功能,可扩展性强,用户相关登录、退出、改密等功能均在users应用中,course应用为问卷应用,采用vue+django+sqlite3开发,但后期可配置连接到...

    毕业设计:仓库即时查询系统毕业设计(源代码)

    开发后的信息化仓库即时查询系统包括用户部分、用户权限、产品快速查询、产品即时价格、产品即时库存、修改产品即时价格、修改产品即时库存、修改用户密码、安全退出系统几个部分。 项目开发的目标: (1) 升级、改造...

    《计算机操作系统》期末复习指导

    •常用的文件存取控制方法有:存取控制矩阵、用户权限表、使用口令、使用密码 6、文件系统的数据结构和表示 UNIX或Linux操作系统中文件系统的主要特点 (1)操作系统文件的目录组织是一个树形结构,...

    医院计算机网络系统安全保护规则.docx

    第十一条:在计算机网络系统设施附近进行场地维修、改造及其他活动时,不得危害计算机网络系统的安全。如无法避免而影响计算机网络系统设施安全的作业,须事先通知计算机管理科,经负责人同意并采取保护措施后,方可...

    【创新创业材料】智能防盗锁技术改造.zip

    项目的核心在于研发一种集成了先进识别技术和网络通信功能的智能锁,它能够通过指纹、密码、手机APP等多种方式控制门锁的开关,同时具备远程监控和实时报警系统,显著提高用户的家居安全性。在可行性研究方面,报告...

Global site tag (gtag.js) - Google Analytics