TOC

GNU/Linux 系统上生成密码的几种方法

相关命令

加密数据源/种子

  • date +%s
  • /dev/urandom 随机数伪设备

加密(编码)方法

  • md5sum
  • shasum
  • sha1sum
  • sha224sum
  • sha256sum
  • sha384sum
  • sha512sum
  • base64

字符转换

  • tr

SSL 加密算法(openssl

  • openssl

生成密码

简单加密

小写字母和数字:

date +%s | md5sum    | head -c16; echo
date +%s | shasum    | head -c16; echo
date +%s | sha1sum   | head -c16; echo
date +%s | sha224sum | head -c16; echo
date +%s | sha256sum | head -c16; echo
date +%s | sha384sum | head -c16; echo
date +%s | sha512sum | head -c16; echo

大写字母、小写字母和数字(加上 base64 编码):

date +%s | md5sum | base64 | head -c16; echo

这是我最常用的一个方法。

urandom 随机数 + tr 字符转换

< /dev/urandom tr -cd A-Za-z0-9 | head -c${1:-16}; echo;
< /dev/urandom tr -cd A-Za-z0-9 | head -c16; echo;

tr -cd '[:alnum:]' < /dev/urandom | fold -w16 | head -n1

cat /dev/urandom | tr -cd A-Za-z0-9 | head -c32; echo;

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev

openssl 生成密码

openssl rand -base64 32 | base64 | head -c16; echo
openssl rand -base64 32 | base64 | cut -c1-16

openssl rand -base64 32 | md5sum
openssl rand -base64 32 | cksum

在线工具

参考