中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux??Shell中如何實現一個獲取任意位數的隨機密碼

發布時間:2021-05-21 14:02:17 來源:億速云 閱讀:178 作者:小新 欄目:開發技術

這篇文章主要介紹了Linux  Shell中如何實現一個獲取任意位數的隨機密碼,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Shell 命令行,實現一個獲取任意位數的隨機密碼的腳本

每次我們想要獲得一個密碼的時候都很頭疼,于是我之前自己用nodejs寫了一個 Shell 腳本。這兩天在學習 bash Shell 所以,想用同樣的邏輯實現一個獲取任意位數隨機密碼的腳本。

我成功了 :)

分析問題

我們假設我們需要的密碼是大小寫字母以及數字的組合,并且剔除掉 1,l,0,O,o 這些不便于認知的字符。

然后隨機的讀取其中的字符,組合成一個我們需要的密碼,最后輸出。

理順了邏輯之后,我想到有下面的知識點是我之前不是很熟悉的。不過沒關系,善用搜索引擎,這些問題都能解決

  1. 任意位數,所以需要接受傳參

  2. 如果沒有傳參,則要給一個默認值

  3. 需要實現隨機數效果

  4. 字符串追加,這個倒是蠻簡單的

  5. 獲取字符串中指定位數的字符

  6. 數字向上取整

實現代碼

最終代碼如下:

#!/bin/bash
# 如果得到參數 則將得到的參數作為密碼的位數,否則指定密碼位數為8
if [ -n "$1" ]; then length=$1;
else length=8; fi

# 設定可以作為密碼的字符串
chars='abcdefghijkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789'

# 獲取上面的字符串的長度,其實可以直接數一下,這不是練一下 shell 嘛
charsLength=`echo $chars | wc -m | sed 's/^[ \t]*//g'`

# 初始的為空
pw=''

# 根據所需密碼長度進行循環
for ((i=0;i<$length;i++));do

 # 取得一個隨機數
 # $RANDOM 是獲取一個小于 32767 的隨機數
 # 所以除以 32767 就可以得到一個 0 - 1 之間的隨機小數 
 r=`echo $RANDOM/32767 | bc -l`

 # 根據隨機數*字符長度取得一個數字
 num=`echo $r*$charsLength | bc`

 # 將取得數字向上取整,并在字符串中截取對應位置的字符
 w=`echo $chars | cut -c$((${num//.*/+1}))`

 # 字符追加到 pw 這個變量
 pw=$pw$w
done

# 輸出我們想要的密碼
echo $pw

運行一下,果然得到了我們想要的結果。

將這個命令作為一個系統命令,可以隨時執行

  1. 我們在 ~目錄下面新建一個 .bin 的文件夾

  2. 將 ~/.bin 設置為環境變量

  3. 然后將此腳本放到改文件夾下面,并命名為 getpass

  4. chmod +x getpass 添加可執行權限

然后我們就可以隨時輸出這個命令,來得到我們想要的密碼了。

將 ~/.bin 設置為環境變量

cd ~
mkdir .bin
vim .bash_profile

在 .bash_profile 文件中添加

export PATH="$PATH:~/.bin"

什么是Linux系統

Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Linux  Shell中如何實現一個獲取任意位數的隨機密碼”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴江市| 长泰县| 长宁县| 二手房| 涡阳县| 乌海市| 泾川县| 比如县| 莱州市| 石景山区| 揭西县| 兴安盟| 琼海市| 包头市| 楚雄市| 化隆| 资源县| 油尖旺区| 金华市| 瑞安市| 湘潭市| 白玉县| 龙游县| 永丰县| 沁阳市| 南安市| 东台市| 岢岚县| 班玛县| 张家川| 元氏县| 调兵山市| 白水县| 板桥市| 北海市| 中牟县| 广汉市| 庆阳市| 大丰市| 桓仁| 勐海县|