Как программно создать APR1-MD5, использующий PHP

Вы также можете попробовать это так

var data = 22;
if (Number.isInteger(data)) {
    console.log("integer");
 }else{
     console.log("not an integer");
 }

или

if (data === parseInt(data, 10)){
    console.log("integer");
}else{
    console.log("not an integer");
}
6
задан Cœur 6 September 2017 в 03:47
поделиться

4 ответа

Оказывается, я допустил ошибку, и эта функция действительно создает рабочие записи APR1 htpasswd. Они действительно выглядят иначе, чем те, что создает Apache, но работают.

2
ответ дан 17 December 2019 в 18:19
поделиться

Поищите существующие компоненты, которые делают это, на таких сайтах, как phpclasses.org. Один пример: http://www.phpclasses.org/browse/package/5066.html .

1
ответ дан 17 December 2019 в 18:19
поделиться

Это может быть немного взломано, но рассматривали ли вы возможность использования функции exec () для вызова команды, которая генерирует htpasswd?

0
ответ дан 17 December 2019 в 18:19
поделиться

Спасибо! Работает как часы.

Небольшой комментарий: соль может также содержать «./» и «A..Z» помимо «a..z0..9», поэтому это та же строка, что и строка «translate-to» в последняя строка. А иногда вы хотите дополнительно установить соль, чтобы получить воспроизводимые результаты, например:

function crypt_apr1_md5 ($ plainpasswd, $ salt = '') {
$ translateTo = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
если ($ salt == '') {$ salt = substr (str_shuffle ($ translateTo), 0, 8); }

...

$ tmp = strtr (strrev (substr (base64_encode ($ tmp), 2)), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /", $ translateTo);
вернуть '$ apr1 $'. $ salt. '$'. $ tmp;
}

0
ответ дан 17 December 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: