我去,同事竟然用明文存儲密碼!!!

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、後端、架構、阿里巴巴等大廠最新面試題

生活很美好,明天見~

相關文章
相關標籤/搜索