Zhong__Go随机密码生成器
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Zhong__Go随机密码生成器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                時間:2021.09.01
環境:
目的:Go語言實現隨機密碼(字符串)
說明:
作者:Zhong QQ交流群:121160124 歡迎加入!
package mainimport ("fmt""math/rand""time""regexp""github.com/gookit/color" )// 指定要生成密碼的長度 var code_len int = 20func main() {color.Secondary.Printf("\n%30s\n", "********************")color.Secondary.Printf("%11s ", "*")color.Style{color.FgCyan, color.OpBold}.Printf("%s", "隨機密碼生成器")color.Secondary.Printf("%s\n", " *")color.Secondary.Printf("%30s\n\n", "********************")//創建隨機數種子 以時間參數rand.Seed(time.Now().UnixNano())//輸出10以內的正整數之中隨機一個數 0-9str_ls := perfect()for i:=0;i<10;i++ {generate_code(str_ls)}color.Info.Println("\n\nTips: 鼠標左鍵查看內容與鎖定程序 右鍵復制內容與釋放程序\n")// 定時退出n := 60tick := time.Tick(1 * time.Second)for exit_program := n; exit_program > 0; exit_program-- {color.Red.Printf("\r%ds 后將自動退出程序 ... ", exit_program)<-tick} }// 密碼元素 func perfect() []byte {//生成包含數字、字母和特殊符號的一個字符串列表 可自定義字符組合 因為字母數量多 可以適當多加入數字和特殊字符 注意不能含有不符合密碼規范的特殊字符str_ls := []byte {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','@','$','*','!','?','.','@','$','*','!','?','.'}//去除易混淆的幾個字符del_ch := []byte {'0', '1', 'i', 'I', 'l', 'L', 'o', 'O'}for j:=0;j<len(del_ch);j++ {for k:=0;k<len(str_ls);k++ {if del_ch[j] == str_ls[k] {str_ls = append(str_ls[:k],str_ls[k+1:]...)}}}return str_ls }// 密碼生成函數 func generate_code(str_ls []byte) string {//字符列表 char_lschar_ls := []byte {}for i:=0;i<code_len;i++ {index := rand.Intn(len(str_ls))char := str_ls[index]char_ls = append(char_ls, char)}str := string(char_ls)//檢測生成的密碼是否是包含數字、字母、特殊符號的組合 如果不是那么重新生成if !regexp.MustCompile(`[0-9]`).MatchString(str) || !regexp.MustCompile(`[A-Z]`).MatchString(str) ||!regexp.MustCompile(`[a-z]`).MatchString(str) || !regexp.MustCompile(`[^a-zA-Z0-9]`).MatchString(str) {return generate_code(str_ls)} else {fmt.Printf("系統隨機生成的密碼為:\t")color.Style{color.OpBold, color.FgBlue}.Printf("%-20v\n", str)return str} }關注微信公眾號? 加入QQ交流群
?
總結
以上是生活随笔為你收集整理的Zhong__Go随机密码生成器的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 口袋妖怪c语言代码大全,口袋妖怪漆黑的魅
 - 下一篇: Java根据中国姓氏的拼音的首字母进行数