ACL
ACL GENPASS
ACL GENPASS [bits]
- Доступно с версии:
- 6.0.0
- Сложность вычислений:
- O(1)
- Категории ACL:
-
@slow,
Пользователям ACL требуется надежный пароль для аутентификации на сервере без рисков безопасности. Такой пароль не должен запоминаться человеком, а только компьютером, поэтому он может быть очень длинным и надежным (неугадываемым внешним злоумышленником). Команда ACL GENPASS генерирует пароль, начиная с /dev/urandom, если доступен, иначе (в системах без /dev/urandom) используется более слабая система, которая, вероятно, всё ещё лучше, чем выбор слабого пароля вручную.
По умолчанию (если /dev/urandom доступен) пароль является надёжным и может использоваться для других целей в контексте приложения Redis, например, для создания уникальных идентификаторов сеанса или других видов неугадываемых и не повторяющихся идентификаторов. Генерация пароля также очень быстрая, потому что мы не запрашиваем /dev/urandom биты на каждом вызове. При запуске Redis создаёт seed с помощью /dev/urandom, затем использует SHA256 в режиме счётчика, с HMAC-SHA256(seed,counter) как примитив, чтобы создавать больше случайных байтов по мере необходимости. Это означает, что разработчику приложения следует чувствовать себя свободно использовать ACL GENPASS для создания необходимого количества безопасных псевдослучайных строк.
Вывод команды представляет собой шестнадцатеричное представление двоичной строки. По умолчанию он выводит 256 бит (т.е. 64 шестнадцатеричных символа). Пользователь может указать аргумент в виде количества бит для вывода от 1 до 1024, чтобы изменить длину вывода. Обратите внимание, что количество предоставленных бит всегда округляется до ближайшего кратного 4. Таким образом, например, запрос пароля всего в 1 бит приведет к выводу 4 бит в форме одного шестнадцатеричного символа.
Возвращаемое значение
Ответ в виде строки: по умолчанию 64-байтовая строка, представляющая 256 бит псевдослучайных данных. Иначе, если нужен аргумент, длина выходной строки равна количеству указанных бит (округлённых до ближайшего кратного 4) делённому на 4.
Примеры
> ACL GENPASS "dd721260bfe1b3d9601e7fbab36de6d04e2e67b0ef1c53de59d45950db0dd3cc" > ACL GENPASS 32 "355ef3dd" > ACL GENPASS 5 "90"
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/acl-genpass/