/dev/urandom 在 MacOS Monterey 上有什么变化吗?
Has anything changed with /dev/urandom on MacOS Monterey?
我曾经能够使用以下行从 /dev/urandom
生成随机字符序列:
cat /dev/urandom | LC_CTYPE=C tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | fold -w 100 | head -n 1 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | tr '[a-m][n-z][A-M][N-Z]' '[n-z][a-m][N-Z][A-M]'
但在我升级到蒙特雷后,这不再起作用。我收到的输出不过是 Input error
。这个 OS 版本有什么变化吗?我现在如何从 /dev/urandom
生成 100 个随机字符的序列?
在蒙特雷,locale
显示 LANG
已设置,总覆盖值 LC_ALL
未设置,因为它通常在其他地方设置,例如 https://docs.oracle.com/cd/E19455-01/806-0169/utf8-98/index.html
要在蒙特雷进行这项工作,只需将语言或覆盖更改为 POSIX 标准默认值:
LANG=C
要么
LC_ALL=C
在蒙特雷,字符类型语言环境可以设置为:
LC_CTYPE=en.US.UTF-8
鉴于现在设置了 LANG,以避免尖括号内的转义码偷偷溜走。
我曾经能够使用以下行从 /dev/urandom
生成随机字符序列:
cat /dev/urandom | LC_CTYPE=C tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | fold -w 100 | head -n 1 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | tr '[a-m][n-z][A-M][N-Z]' '[n-z][a-m][N-Z][A-M]'
但在我升级到蒙特雷后,这不再起作用。我收到的输出不过是 Input error
。这个 OS 版本有什么变化吗?我现在如何从 /dev/urandom
生成 100 个随机字符的序列?
在蒙特雷,locale
显示 LANG
已设置,总覆盖值 LC_ALL
未设置,因为它通常在其他地方设置,例如 https://docs.oracle.com/cd/E19455-01/806-0169/utf8-98/index.html
要在蒙特雷进行这项工作,只需将语言或覆盖更改为 POSIX 标准默认值:
LANG=C
要么
LC_ALL=C
在蒙特雷,字符类型语言环境可以设置为:
LC_CTYPE=en.US.UTF-8
鉴于现在设置了 LANG,以避免尖括号内的转义码偷偷溜走。