linux產生隨機數與隨機字元

2021-09-20 14:54:18 字數 2172 閱讀 8175

在面試的時候我們會遇到寫乙個批量建立使用者,並且隨機生成不重複密碼的指令碼,

建立使用者就用迴圈就好了,但是建立隨機數來做密碼的話,就有很多方法了,比如

我們建立隨機字元+隨機數

可以用mktemp+radom

mktemp建立的乙個暫存檔案

radom是建立乙個隨機數

利用mktmp 建立乙個檔案,然後提取檔名再加上random的數字就可以組成乙個密碼了

如下:1

2

3

4

5

6

7

8

9

10

11

12

13

14

[root@master tmp]# mktemp /tmp/******

/tmp/bw2niv

[root@master tmp]# mktemp /tmp/******

/tmp/tilgeb

[root@master tmp]# mktemp /tmp/******

/tmp/zknsns

[root@master tmp]# mktemp /tmp/******

/tmp/cih4n7

[root@master tmp]# echo $((random%500+100))

315

[root@master tmp]# echo $((random%500+100))

110

[root@master tmp]# echo $((random%500+100))

333

當然也有其他的方法,比如:

1

2

3

4

5

6

[root@master tmp]# date +%s%n | md5sum | head -c 10

68b9a5a4dc

[root@master tmp]# date +%s%n | md5sum | head -c 10

f238c9d1ee

[root@master tmp]# date +%s%n | md5sum | head -c 10

b367c656ab

1

2

3

4

5

6

b367c656ab[root@master tmp]# cat /proc/sys/kernel/random/uuid|awk -f'-' ''

e10b67d7d582

[root@master tmp]# cat /proc/sys/kernel/random/uuid|awk -f'-' ''

da8753879fd4

[root@master tmp]# cat /proc/sys/kernel/random/uuid|awk -f'-' ''

b29be7c20191

這樣的方法網上還有很多,可以自己去查詢,這裡就不多說了

linux產生隨機數

函式rand 是真正的隨機數生成器,而srand 會設定供rand 使用的隨機數種子。函式rand 會返回乙個處於0和你所指定的數值 缺 省為1 之間的分數。如果你在第一次呼叫rand 之前沒有呼叫srand 那麼系統會為你自動呼叫srand 而使用同種子相同的數呼叫 srand 會導致相同的隨機數...

產生隨機數

先說明一下rand,這個函式用來產生偽隨機數。比如,產生1000的兩個隨機數,產生的兩個一般上是不同的,但如果要產生80個100以內的隨機數,僅用rand函式就不夠。因為產生80個100以內的隨機數,至少有兩個數相等的概率太大了 srand函式,並不能使產生的隨機數完全不同。你可以執行以下這串 in...

隨機數產生

c c 中取隨機數 在計算機中並沒有乙個真正的隨機數發生器,但是可以做到使產生的數字重複率很低,這樣看起來好象是真正的隨機數,實現這一功能的程式叫偽隨機數發生器。有關如何產生隨機數的理論有許多,如果要詳細地討論,需要厚厚的一本書的篇幅。不管用什麼方法實現隨機數發生器,都必須給它提供乙個名為 種子 的...