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

作者|栈长

来源|Java技术栈(ID:javastack

Oh My God!

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

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

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

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

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

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

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

  • MD5(不推荐,不安全了)

  • AES(不推荐,密钥不好保存,可被解密)

  • 3DES(不推荐,密钥不好保存,可被解密)

  • SHA1(不推荐,不安全了)

  • SHA256

  • SHA512

  • PBKDF2

  • bcrypt

  • scrypt

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

通过这个事情,栈长真的体会到,现如今软件行业开发人员水平真的太参差不齐了,什么狗屎代码我都见过。

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

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

即使如此,这也不能成为写烂代码、写 BUG、不自我提升的理由。这完全也看人,看他想不想把事情做好,想不想提升自己,有没有对自己有要求。

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

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

热 文 推 荐

抗住百万人直播、被联合国推荐,起底飞书技术演进之路!

六年级小同学,为你破解智商 130 才会玩的游戏

数据库连接池的原理没你想得这么复杂

智能合约编写之 Solidity 的设计模式

增量学习不只有finetune,三星AI提增量式少样本目标检测算法 | CVPR 2020

360 回应安全云盘出现交易异常;苹果官网陆续限购 iPhone;GitHub 屏蔽微软工程师的开源项目 | 极客头条

你点的每个“在看”,我都认真当成了喜欢

发布了490 篇原创文章 · 获赞 1万+ · 访问量 535万+

猜你喜欢

转载自blog.csdn.net/csdnsevenn/article/details/105020666