Если вам нужно создать строку/токен для аутентификации будущих запросов (например, ключ API, URL-адрес подтверждения электронной почты и т. Д.), Какие факторы следует учитывать?Что делает шифр/токен криптографически безопасным?
В частности
- Что делает строку "обеспечить"/"очень трудно угадать"?
- Как измеряется/оценивается «сумма обеспечения»?
- Каковы основные стандарты?
Практический пример
Давайте возьмем эти два выходных строки из NodeJS.
Строка 1 (через Node crypto)
var crypto = require('crypto');
crypto.randomBytes(48, function (ex, buf) {
console.log(buf.toString('hex'));
});
Строка 2 (через Node UUID)
var uuid = require('node-uuid');
console.log(uuid.v4());
Исходя из концепций, описанных выше, которые можно было бы быть более безопасным и почему?
Кроме того, не стесняйтесь предлагать какие-либо хорошие вводные материалы по этой теме, так как я не мог легко найти статьи об этом в Интернете.
Я почти не думаю, что есть разница в отношении ваших данных и целей использования. – marekful
@marekful, спасибо! Где я пытаюсь попасть сюда, так это: как понять разницу? – Pensierinmusica
Проверьте эту страницу на [крипто-силовой случайности] (http://www.cs.berkeley.edu/~daw/rnd/). –