我去,同事竟然用明文存储密码!!!

Oh My God!java

最近检查代码,发现某个系统登陆的逻辑直接用明文查询数据库,而后栈长去看了下数据库表,竟然是明文存储,简直不敢相信。。。面试

简单介绍下,这是一个企业内部系统,就几个功能点,公司某个部门的人在用,整个系统就由一个开发人员完成,这个开发人员毕业两年左右了,还算是初级开发。算法

密码为何要明文存储呢?虽然只是一个小小的内部系统,但这也是不合规的,也是十分严重的安全隐患,我便去找这个系统的开发人员了解了下状况。数据库

栈长:这个系统为何要用明文存储用户密码?
开发:这是内部小系统,只有几我的在用,应该不用加密吧
栈长:系统不分大小,全部敏感信息都须要加密处理,更况且是密码,赶忙修改处理下
开发:好的,个人锅

虽然开发意识到本身的错误,但在如何使用加密问题上又犯难了,我让他直接参考了别的系统的加密逻辑。后端

这真是一个严重的、低级的安全问题,固然测试也有责任,没有检查数据,但更多的是开发没有这个安全意识,这个一旦发生事故,他被开除或者追责一点都不为过。安全

虽然低级,以前某些互联网公司也曾暴过明文存储致使大量用户和密码泄露的事故,那么,咱们到底该如何安全的存储呢?通常有如下几种方案:微信

  • MD5(不推荐,不安全了)
  • AES(不推荐,密钥很差保存,可被解密)
  • 3DES(不推荐,密钥很差保存,可被解密)
  • SHA1(不推荐,不安全了)
  • SHA256
  • SHA512
  • PBKDF2
  • bcrypt
  • scrypt

该使用什么方案加密很清楚了吧,栈长以前分享过一篇很详细的解答各类加密算法,你们能够看下,或者关注公众号:Java技术栈,在后台回复 "算法" 获取这篇文章。多线程

经过这个事情,栈长真的体会到,现现在软件行业开发人员水平真的太良莠不齐了,什么狗屎代码我都见过。架构

企业为了生存,节约成本,须要招些初级开发人员无可厚非,但真的有些开发人员就真的不动脑子想事情,对本身写的代码一点也没有要求,没有追求代码完美的意识……工具

固然,我也能理解,天天一大堆的 CRUD 业务需求都会让开发人员陷在里面不可自拔,哪来时间作代码优化、作思考?说句大实话,能准时下班,都没有几个公司能作到。

即便如此,这也不能成为写烂代码、写 BUG、不自我提高的理由。这彻底也看人,看他想不想把事情作好,想不想提高本身,有没有对本身有要求。

栈长肺腑之言了,但愿你们都对本身有点要求,才能成就更好的本身,不要成为同事心目中诟病的对象,自古至今,严于律己的混的都不会太差,一块儿加油吧,骚年们!

最后,大家公司用的什么加密方式,欢迎留言分享~

关注Java技术栈微信公众号,栈长将继续分享好玩的 Java 技术,公众号第一时间推送,在公众号后台回复:Java,能够获取历史 Java 教程,都是干货。

推荐去个人博客阅读更多:

1.Java JVM、集合、多线程、新特性系列教程

2.Spring MVC、Spring Boot、Spring Cloud 系列教程

3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

4.Java、后端、架构、阿里巴巴等大厂最新面试题

生活很美好,明天见~

相关文章
相关标签/搜索