0
因爲如果一些不好的員工偷了它,他可以冒充任何用戶。
如果它不應該硬編碼,sholud它被放在哪裏?
我正在考慮實施JWT身份驗證。HMAC祕密密鑰是否應該不進行硬編碼?
因爲如果一些不好的員工偷了它,他可以冒充任何用戶。
如果它不應該硬編碼,sholud它被放在哪裏?
我正在考慮實施JWT身份驗證。HMAC祕密密鑰是否應該不進行硬編碼?
HMAC密鑰是純文本。作爲任何私人/祕密文本,您應該避免將文本(硬編碼)存儲爲簡單/純文本字符串,因爲它可以使用反彙編來顯示。
所以是的,以某種方式混淆密鑰,至少進行簡單的文本轉換是件好事。一般而言,您可以選擇任何類型的轉換。
其中一種方法是使用編碼/解碼進行轉換:您的密鑰作爲編碼字符串存儲在源中,並在需要時在運行時解碼。例如,您可以使用Google建議的XOR加密:
static String stringTransform(String s, int i) {
char[] chars = s.toCharArray();
for(int j = 0; j<chars.length; j++)
chars[j] = (char)(chars[j]^i);
return String.valueOf(chars);
}
該函數應該用於加密和解密,「i」是任意的隨機值。