從固定密碼升級為用戶自定義密碼,核心在于「客戶端發起修改請求 → 服務端驗證舊密碼 → 更新數據庫 → 返回結果」。以下是關鍵步驟與安全建議:
交互流程
- 用戶輸入舊密碼、新密碼、確認新密碼
- 客戶端做基本校驗(非空、長度、兩次一致)
- 發送 HTTPS POST 請求至
/api/user/change-password,Body 包含 oldPwd、newPwd(建議傳加密哈希而非明文)
- 服務端驗證舊密碼哈希匹配、新密碼強度、防重放攻擊
- 更新數據庫存儲的鹽值密碼哈希(推薦 bcrypt/Argon2)
- 返回成功/失敗碼,客戶端提示並跳轉登錄頁
參考項目
完整示例可參考:Android 修改密碼實戰
安全提醒
- 全程 HTTPS,防止中間人竊聽
- 密碼加鹽哈希存儲,嚴禁明文或僅 MD5
- 限制修改頻率,防暴力破解
- 敏感操作需二次認證(如短信驗證碼)