Как использовать Oracle dbms crypto для создания паролей, совместимых с htpasswd
Есть ли способ использовать пакет Oracle / DBMS_CRYPTO PL/SQL для создания паролей, совместимых с apache htpasswd? Поэтому в пакете PL / SQL я создаю хешированный пароль, который при последующем хранении в файле.htpasswd будет работать нормально.
В настоящее время мы делаем это в Unix с помощью команды htpasswd -n -b -d. Однако мы хотели бы создать их и сохранить в таблице Oracle. Затем получите их для создания файлов.htpasswd, когда это необходимо.
Спасибо!
Джо
1 ответ
htpasswd
Инструмент способен генерировать несколько типов хэшированных паролей. Вы используете -d
флаг, который использует доисторический crypt()
хеш формат crypt()
хэши удивительно небезопасны и восхитительно легко взламываются.
Согласно этой странице руководства от Oracle 10g, DBMS_CRYPTO
пакет не поддерживает crypt()
, Это не удивительно.
Вам нужно будет переключиться на другой алгоритм хеширования, чтобы осуществить это. Самый простой способ будет эквивалентен использованию -s
флаг вместо -d
флаг для создания паролей SHA1. Попробуйте это в командной строке, чтобы увидеть результаты. Формат пароля - буквальная строка {SHA}
за ним следует хеш SHA1 в кодировке base64 без засолки. DBMS_CRYPTO
Пакет, кажется, поддерживает SHA1 и намекает на то, что есть функция для кодирования base64. Или, если вы сами создаете файл.htpasswd, вы можете просто сохранить хеш любым удобным для вас способом и преобразовать его на выходе, используя ваш язык.