JAVA加解密算法設計與應用

業務場景

APP移動端、WEB、桌面端、第三方平臺

密碼等敏感數據加密設計

如 app端登錄密碼加密設計

對於登錄密碼 不需要進行解密 只需要加密算法結合規則進行比較 就能得到密碼正確與否

方法一(簽名保證安全)

  1. 密碼等敏感信息取Md5值 對所有值(加上timestamp)排序後 取SHA256哈希值(十六進制字符串) 作爲簽名
  2. 後臺驗證簽名
  3. 對password(進行過一次Md5) 進行Md5Hash(加上salt),得到真正密碼(依賴shiro包)

案例

登錄簽名流程:(賬號密碼登錄) 用戶名登錄或手機號與密碼登錄

  1. 用戶名或手機號 username (A)、密碼 password(B)、時間戳 timestap(D)
  2. MD5(B) = E
  3. A 、D、E 分組排(冒泡)序後產生 A1、D1、E1
  4. SHA256(A1+D1+E1) = F
  5. A、D、E、F 發送給服務器端
  6. 服務端按照按照(3)(4) 生成 G,與 F進行比較

方法二(數據加密保證安全)

登錄名+密碼+salt = A ,數據庫Md5Hash(A) 依賴shiro包

方法三(數據加密保證安全)

RSA加密結合AES加密算法的對稱加解密方案 ,風險是速度慢導致性能差(密碼用AES加密 保證不傳輸明文 同時AES密鑰可以有RSA加密 保證傳輸安全)

方法四(簽名保證安全)

網關服務如調度系統對接口參數進行簽名校驗,簽名算法可以使用sdk提供給外部系統 每個外部系統分配唯一的appId和appKey並提供給第三方系統 具體服務則根據sdk算法得到簽名與外部接口傳入的簽名進行對比

常用算法

常用加密、解密算法 Hash Base64 Md5 SHA256 RSA AES hmacsha1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章