SecureRandom.getInstanceStrong 有深坑


最近用上了sonarqute 對項目進行了掃描,接納了針對 new SecureRandom() 變更為 SecureRandom.getInstanceStrong() 的建議,結果深坑似海~

事發

一個內部應用項目, 需要短信進行驗證登錄,需要生成隨機驗證碼,但是發版本后,請求長時間不回執,最終502 504, 無異常。

排查過程

查看日志,因為沒加上 requestid/traceid 只能通過thread按照時間端查詢,經過查詢,基本都是一個狀態

針對 thread http-nio-8000-exec-1 查抄,后面就再也沒出現這一線程
真的是 百思不得其解 , 於是 開始瘋狂加 log 日志,在測試環境中進行測試

注意: 重點來了,wsl 環境中模仿了centos, 竟然順利執行了!

也就是說 在測試環境中,並沒發現任何問題!

於是回想起來,本次版本更新對此方法 最大的操作, 就是將 驗證碼這個隨機數更新了,鐵定就是它的問題。
於是開始 度娘 起來 ,然后就知道了 這個坑爹的玩意,不同的系統下,出現的問題不一樣
具體的問題分析 可以參考 這篇關於SecureRandom.getInstanceStrong()引發的線程阻塞問題分析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM