我去,同事居然用明文存储密码!!!
Oh My God!
最近检查代码,发现某个系统登录的逻辑直接用明文查询数据库,然后栈长去看了下数据库表,居然是明文存储,简直不敢相信。。。
简单介绍下,这是一个企业内部系统,就几个功能点,公司某个部门的人在用,整个系统就由一个开发人员完成,这个开发人员毕业两年左右了,还算是初级开发。
密码为什么要明文存储呢?虽然只是一个小小的内部系统,但这也是不合规的,也是十分严重的安全隐患,我便去找这个系统的开发人员了解了下情况。
栈长:这个系统为什么要用明文存储用户密码?
开发:这是内部小系统,只有几个人在用,应该不用加密吧
栈长:系统不分大小,所有敏感信息都需要加密处理,更何况是密码,赶紧修改处理下
开发:好的,我的锅
虽然开发意识到自己的错误,但在如何使用加密问题上又犯难了,我让他直接参考了别的系统的加密逻辑。
这真是一个严重的、低级的安全问题,当然测试也有责任,没有检查数据,但更多的是开发没有这个安全意识,这个一旦发生事故,他被开除或者追责一点都不为过。
虽然低级,之前某些互联网公司也曾暴过明文存储导致大量用户和密码泄露的事故,那么,我们到底该如何安全的存储呢?一般有以下几种方案:
- MD5(不推荐,不安全了)
- AES(不推荐,密钥不好保存,可被解密)
- 3DES(不推荐,密钥不好保存,可被解密)
- SHA1(不推荐,不安全了)
- SHA256
- SHA512
- PBKDF2
- bcrypt
- scrypt
该使用什么方案加密很清楚了吧,栈长之前分享过一篇很详细的解答各种加密算法,大家可以看下,或者关注公众号:Java技术栈,在后台回复 "算法" 获取这篇文章。
通过这个事情,栈长真的体会到,现如今软件行业开发人员水平真的太参差不齐了,什么狗屎代码我都见过。
企业为了生存,节约成本,需要招些初级开发人员无可厚非,但真的有些开发人员就真的不动脑子想事情,对自己写的代码一点也没有要求,没有追求代码完美的意识……
当然,我也能理解,每天一大堆的 CRUD 业务需求都会让开发人员陷在里面不可自拔,哪来时间做代码优化、做思考?说句大实话,能准时下班,都没有几个公司能做到。
即使如此,这也不能成为写烂代码、写 BUG、不自我提升的理由。这完全也看人,看他想不想把事情做好,想不想提升自己,有没有对自己有要求。
栈长肺腑之言了,希望大家都对自己有点要求,才能成就更好的自己,不要成为同事心目中诟病的对象,自古至今,严于律己的混的都不会太差,一起加油吧,骚年们!
最后,你们公司用的什么加密方式,欢迎留言分享~
关注Java技术栈微信公众号,栈长将继续分享好玩的 Java 技术,公众号第一时间推送,在公众号后台回复:Java,可以获取历史 Java 教程,都是干货。
推荐去我的博客阅读更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
生活很美好,明天见~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具