Как создать случайные шестнадцатеричные цифры без пробелов?

Вау, хорошо, а вы не думали просто удалить пользователя?

userdel john

Как уже говорили другие, вход в систему как root по ssh не рекомендуется, как и дублирование uid's 0.

3
12.05.2017, 03:24
2 ответа

openssl rand 16 не выводит шестнадцатеричный вывод, а openssl rand -hex 16 не выводит пробелы и выводит 16 байт ( 32 шестнадцатеричных цифры), а не 32 байта (64 цифры). Но в любом случае, если вы хотите удалить пробелы и символы новой строки, вы можете использовать tr:

$ cat data
3e1c 37e2 96fc 7029 970c cc87 98fe 40f7
7c70 5a9a 30da 7b72 0064 9a54 ae9c ed91
$ cat data | tr -d '\n '; echo
3e1c37e296fc7029970ccc8798fe40f77c705a9a30da7b7200649a54ae9ced91

Чтобы удалить все символы, которые не являются шестнадцатеричными цифрами, вы можете использовать tr -dc 0-9A- Fa-f или tr -dc '[:xdigit:]'.

Если вы хотите создавать случайные шестнадцатеричные цифры, вы можете получить их из /dev/urandom (в Linux может быть /dev/random или /dev/ arandom в других вариантах Unix).

</dev/urandom od -An -tx1 | head -c 32 | tr -d ' \n' 
1
27.01.2020, 21:18

Вы можете использовать trдля удаления пробелов и новых строк, например:

openssl rand 16 | tr -d '\n '  > file.txt

Или, если вы действительно плохо запоминаете флаги, вы можете использовать tr, чтобы преобразовать новые строки в пробелы, а затем использовать sed, чтобы удалить пробелы.

openssl rand 16 | tr '\n' ' ' | sed 's/ //g' > file.txt
3
27.01.2020, 21:18

Теги

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