因为如果一个坏员工偷了它,他可以模仿任何用户 如果它不应该被硬编码,那么它应该被推迟呢? 我正在考虑实施JWT身份验证。
答案 0 :(得分:0)
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);
}
此功能应该用于加密和解密,&#34; i&#34;是一个随机值。