Установить случайно сгенерированный пароль для переменной?

Я использую следующую строку для создания случайно сгенерированного пароля в скрипте bash, но не похоже, что строка на самом деле устанавливается в переменную.

#Generate random password
PASSWORD=date+%s|sha256sum|base64|head -c 32;
echo $PASSWORD

Когда я позже ссылаюсь на $ PASSWORD в этом скрипте, drush жалуется, что я не указал пароль. Чтобы проверить, я попробовал несколько «эхо», чтобы подтвердить свое подозрение. Похоже, что-то не так в моих операторах присваивания?

4
задан 18 July 2014 в 18:37

4 ответа

Необходимо использовать замена команды цитата, как

PASSWORD=`date +%s|sha256sum|base64|head -c 32`
echo $PASSWORD

, или можно сделать это как,

PASSWORD=$(date +%s|sha256sum|base64|head -c 32)
echo $PASSWORD
5
ответ дан 18 July 2014 в 18:37

Генерация пароля только на основе текущего времени довольно плоха.

, Поскольку Вы хотите пароль с 32 символами, я сделал бы что-то вроде этого:

PASSWORD=$(head -c 16  /dev/random | md5sum | cut -f 1 -d\ )
4
ответ дан 18 July 2014 в 18:37

Необходимо использовать замена команды :

#Generate random password
PASSWORD=$(date +%s|sha256sum|base64|head -c 32)
echo $PASSWORD

тогда это должно работать.

Предпочитают знак "$", читают больше здесь: Используя обратные галочки или доллар в сценариях оболочки

6
ответ дан 18 July 2014 в 18:37

как не наличие репутации для комментария я вынужден добавить не, отвечают на этом шаге

Как @Ángel я скептически относился к генерации пароля на основе времени, таким образом, я сделал некоторый тест

с командой, предложенной @Ángel: пароль имеет среднюю энтропию: 125 битов

с командой на основе времени, как предложено @souravc: средняя энтропия пароля: 175 битов

таким образом, дело не в этом плохо для генерации пароля на основе времени, в конце концов, ;)

0
ответ дан 23 November 2019 в 11:37

Другие вопросы по тегам:

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