2016-05-13 5 views
0

Потому что, если какой-нибудь плохой сотрудник украл его, он мог выдавать себя за других пользователей.
И если он не должен быть жестко запрограммирован, где sholud его поместить?
Я собираюсь реализовать аутентификацию JWT.Должен ли секретный ключ HMAC быть жестко закодированным?

ответ

0

Секретный ключ HMAC - это простой текст. Как любой секретный/секретный текст, вы должны избегать хранения (hard-code) текста в виде простой/простой строки, потому что его можно обнаружить с помощью дизассемблирования.

Так что да, это хорошая вещь, чтобы каким-то образом запутать секретный ключ, сделав хотя бы простое текстовое преобразование. В общем, вы можете выбрать любую трансформацию.

Одним из подходов является использование кодирования/декодирования для преобразования: ваш секретный ключ хранится в источнике как закодированная строка и декодируется во время выполнения, когда это необходимо. Например, вы можете использовать шифрование XOR, предложенный Google:

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); 
} 

Эта функция должна использоваться для шифрования и дешифрования, «я» является любое случайное значение.

Смежные вопросы