zoukankan      html  css  js  c++  java
  • 密码生成器

    密码生成器

    package main
    
    import (
    	"flag"
    	"fmt"
    	"math/rand"
    	"time"
    )
    
    var (
    	NUmStr = "0123456789"
    	ChanStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    	SpecStr = "+=-@#~,.[]()!%^*$"
    	MixtureStr = NUmStr+ChanStr+SpecStr
    )
    
    var (
    	lens int
    	num bool
    	char bool
    	mixture bool
    )
    
    func CommArgs(){
    	flag.IntVar(&lens,"len",6,"default len 5")
    	flag.BoolVar(&num,"num",false,"default false")
    	flag.BoolVar(&char,"char",false,"default false")
    	flag.BoolVar(&mixture,"mixture",false,"default false")
    }
    
    func init(){
    	CommArgs()
    	flag.Parse()
    	rand.Seed(time.Now().UnixNano())
    }
    
    func Getstr(b []byte,str string)string{
    	for i,_:=range b{
    		b[i] = str[rand.Intn(len(str))]
    
    	}
    	return string(b)
    }
    
    func Randstring(lens int)string{
    	 b := make([]byte,lens)
    	 var str string
    	if num {
    		str=Getstr(b,NUmStr)
    
    	}else if char {
    		str=Getstr(b,ChanStr)
    
    	}else{
    		str=Getstr(b,MixtureStr )
    	}
    	return  str
    }
    
    func main() {
    
    	if !num  && !char && !mixture  {
    		fmt.Println("comm args err")
    		return
    	}
    
    	str:=Randstring(lens)
    	fmt.Println(str)
    }
    
    
  • 相关阅读:
    nyoj 42 一笔画 欧拉通路
    布丰投针实验1
    poj 1328 贪心
    uva 10026 贪心
    zoj 1375 贪心
    uva 103 经典DAG变形
    uva 11088 暴力枚举子集/状压dp
    jsp分页功能
    static静态变量的理解
    Vector & ArrayList 的主要区别
  • 原文地址:https://www.cnblogs.com/egrep/p/11463545.html
Copyright © 2011-2022 走看看