linux 随机,oracle获取随机数

大家好,今天来为大家分享linux 随机的一些知识点,和oracle获取随机数的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

Linux命令行生成随机密码的方法有哪些

生成一个随机密码

对于下面的任何一种方法,你可以通过简单的修改来生成特定长度的密码,或者只使用其输出结果的前N位。希望你正在使用一些类似于LastPass的密码管理器,这样你就不用自己记住这些随机生成的密码了。

1.这种方法使用SHA算法来加密日期,并输出结果的前32个字符:

Shell

1

date+%s| sha256sum| base64| head-c 32; echo

2.这种方法使用内嵌的/dev/urandom,并过滤掉那些日常不怎么使用的字符。这里也只输出结果的前32个字符:

Shell

1

</dev/urandom tr-dc _A-Z-a-z-0-9| head-c${1:-32};echo;

3.这种方法使用openssl的随机函数。如果你的系统也许没有安装openssl,你可以尝试其它九种方法或自己安装openssl。

Shell

1

openssl rand-base64 32

4.这种方法类似于之前的urandom,但它是反向工作的。Bash的功能是非常强大的!

1

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

5.这种方法使用string命令,它从一个文件中输出可打印的字符串:

Shell

1

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

6.这是使用urandom的一个更简单的版本:

Shell

1

</dev/urandom tr-dc _A-Z-a-z-0-9| head-c6

7.这种方法使用非常有用的dd命令:

Shell

1

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

8.你甚至可以生成一个只用左手便可以输入的密码:

Shell

1

</dev/urandom tr-dc'12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB'| head-c8; echo""

9.如果每次都使用上述某种方法,那更好的办法是将它保存为函数。如果这样做了,那么在首次运行命令之后,你便可以在任何时间只使用randpw就可以生成随机密码。或许你可以把它保存到你的~/.bashrc文件里面。

Shell

1

randpw(){</dev/urandom tr-dc _A-Z-a-z-0-9| head-c${1:-16};echo;}

10.最后这种生成随机密码的方法是最简单的。它同样也可以在安装了Cygwin的Windows下面运行。在Mac OS X下或许也可以运行。我敢肯定会有人抱怨这种方法生成的密码没有其它方法来的随机。但实际上如果你使用它生成的全部字符串作为密码,那这个密码就足够随机了。

Shell

1

date| md5sum

是的,这种方法也极其好记。

如何在Linux系统通过命令行生成随机文件

A、当你不需要关心随机文件的内容,只需一个固定大小的文件

1、Solaris、Mac OS X等Unix系统中mkfile指令,可以产生指定大小的文件,而Linux上则没有

例子:

mkfile-n 160g test1

2、Linux可以用dd指令,/dev/zero是一个特别的文件描述符可以通过它返回null值

例子:

dd if=/dev/zero of=test.file count=1024 bs=1024

产生count* bs字节的文件,1M

此方法生成随机文件的好处在于效率高(产生1G文件大概1s),创建的文件大小精确到字节

坏处也有

使用null字符来填充文件内容,文件统计时没有行(wc-l test.file为0)

B、当你不需要关心随机文件的内容,但期望测试文件能有统计的行

将/dev/zero改为/dev/urandom,/dev/urandom是linux下的随机数生成器

关于/dev/urandom跟/dev/random两者的区别就不在此详细讨论,大概就是,前者是不受系统interrupts的限制,即使没有足够的interrupt它也能通过随机数生成器产生足够的输出值;而后者如果用在dd上,它不能被ctrl+c或者kill-9中断,如果ds的值较大时,产生的随机值不足而长期占用CPU。虽然说/dev/random产生的随机数会更随机些,但与dd混用还是建议用/dev/urandom效率更高。

缺点跟/dev/zero比当然是效率会更低些了,生成个100Mb的文件需要10秒左右,而且文件并没有可读的内容,一般的情况基本上是满足了。

漏了说句,dd是linux与unix都支持的指令。

C、当你关心文件的随机内容行数,而不关心内容是否有所重复

这里的思路就是找一个参照文件(比如说2行),将文件重新定向到新的文件,再mv覆盖保存,外加一个for循环。(n为循环次数,产生的文件行为2^(n+1))

例子:假设先建立一个file.txt文件,里面含有Hello和 World两行

for i in{1..n}; do cat file.txt file.txt> file2.txt&& mv file2.txt file.txt; done

由于是阶乘,n=20左右已经是200W行,效率会下降地比较厉害

D、当你关心随机文件的内容,而不想出现重复内容行情况

这种情况下系统的指令应该是不能满足了,或者可以通过操作系统的指令写一大串脚本也可以达到,但不建议这么做,因为可读性和维护性考虑,你应该要引入Ruby或者Python类的脚本语言帮忙了

但还是要借助些系统的东西来帮忙

思路:

/usr/share/dict/words里面有记录一些单词,一共235886行,每行一个单词

可以从里面挑选一些作为文件的内容

加循环达到我们想要的随机文件要求

举例:

ruby-e'a=STDIN.readlines;X.times do; b=[];Y.times do; b<<a[rand(a.size)].chomp end; puts b.join("")'</usr/share/dict/words> file.txt

X为随机文件需要的行数,Y为从words中读取的单词,虽说组合成一句的命令,还是可以读懂的;从标准输入中重复读取Y个单词,写入到b列表中,然后再通过join空格连接内容写入到标准输出文件file.txt中

这样基本很少会有重复的行了,而且生成的效率与其他方法对比还是可以的,10秒生成100Mb文件。欢迎大家讨论。

八种在 Linux 上生成随机密码的方法

在Linux上生成随机密码的方法

本文将指导您使用8种不同的方法在Linux终端中生成随机密码,其中一些使用原生Linux命令,另一些则通过在Linux机器上轻松安装的第三方工具实现。

这些方法旨在生成独特且随机的字母字符串,可作为新用户密码。无论用户基数如何,这些密码都是独一无二的。接下来,让我们一起探索8种在Linux上生成随机密码的方法。

使用mkpasswd实用程序生成密码

在基于RHEL的系统上,mkpasswd随expect软件包一起安装;在基于Debian的系统上,它包含在whois软件包中。要正确使用mkpasswd,请先安装父软件包。运行mkpasswd命令以获得密码。

不同系统上的命令可能有所不同,您可以使用参数控制长度等选项。查阅man手册以深入了解。

使用openssl生成密码

几乎所有Linux发行版都包含openssl。利用其随机功能,我们可以生成可用作密码的随机字母字符串。

使用base64编码随机函数,最后一个数字参数表示所需长度。

使用urandom生成密码

设备文件/dev/urandom是获取随机字符串的另一种方法。通过使用tr功能并裁剪输出,将其作为密码。

使用dd命令生成密码

通过使用/dev/urandom设备配合dd命令,我们可以获取随机字符串。

将结果通过base64编码使其可读。使用数值获取所需长度。简洁输出命令如下:

使用md5sum生成密码

计算MD5校验值是一种生成可用作密码的随机字符串的方法。校验值确实像是随机字符串的组合,可用于密码。确保计算源是一个变量,这样每次运行命令时生成的校验值都会不同。

将date命令的输出通过md5sum得到校验和!您还可以使用cut命令裁剪所需长度。

使用pwgen生成密码

pwgen软件包可以在类似EPEL软件仓库中找到。pwgen专注于生成可发音的密码,但它们不在英语词典中,也不是纯英文的。在标准发行版仓库中可能找不到这个工具。安装此软件包后,运行pwgen命令行。将得到密码列表!

pwgen还有许多自定义选项,这些都可以在man手册中查阅。

使用gpg工具生成密码

GPG是遵循OpenPGP标准的加密及签名工具,大部分gpg工具都预先安装在系统中。如果没有,则可以寻找gpg或gpg2软件包并安装它。

使用以下命令生成密码:

传入生成随机字节序列选项(--gen-random),质量为1(第一个参数),次数12(第二个参数)。选项--armor保证以base64编码输出。

使用xkcdpass生成密码

xkcdpass工具由xkcd网站启发,专门用于生成好记且复杂的密码。这是一个Python软件包,可以在Python官网找到。

安装步骤和测试输出已在相关页面上提及。运行xkcdpass命令,将随机提供几个像下面这样的字典单词:

您可以使用这些单词作为其他命令的输入,例如md5sum,或每个单词的第N个字母来生成密码!您甚至可以将所有单词组合成一个超长的密码,既好记又不易被电脑程序破解。

在Linux上,还有像Diceware、KeePassX、Revelation、PasswordMaker等工具,可以考虑用于生成强随机密码。

阅读剩余
THE END