【发布时间】:2016-09-09 02:39:08
【问题描述】:
因为如果某个坏员工偷了它,他可以冒充任何用户。
如果它不应该被硬编码,它应该放在哪里?
我正在考虑实现 JWT 身份验证。
【问题讨论】:
标签: authentication jwt hmac
因为如果某个坏员工偷了它,他可以冒充任何用户。
如果它不应该被硬编码,它应该放在哪里?
我正在考虑实现 JWT 身份验证。
【问题讨论】:
标签: authentication 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”是一个任意随机值。
【讨论】: