系统时间在linux中的随机字符串

min*_*dia 6 linux random

我和Bash一起工作.我想按系统时间生成randrom字符串.唯一字符串的长度必须在10到30个字符之间.任何人都可以帮助我吗?

Bur*_*lid 11

有很多方法可以做到这一点,我最喜欢的方法是使用该urandom设备:

burhan@sandbox:~$ tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1
CCI4zgDQ0SoBfAp9k0XeuISJo9uJMt
Run Code Online (Sandbox Code Playgroud)
  • tr (翻译)确保只显示字母数字
  • fold 将它包装为30个字符宽度
  • head 确保我们只获得第一行

要使用当前系统时间(因为您有此特定要求):

burhan@sandbox:~$ date +%s | sha256sum | base64 | head -c30; echo
NDc0NGQxZDQ4MWNiNzBjY2EyNGFlOW
Run Code Online (Sandbox Code Playgroud)
  • date +%s 这是我们基于日期的种子
  • 我们通过几个哈希来运行它以获得"随机"字符串
  • 最后我们将其截断为30个字符

其他方式(包括上面列出的两个)可以在此页面上找到,其他方式(如果您只是谷歌).