首页 > 其他 > 详细

密码生成器

时间:2019-09-05 12:19:35      阅读:96      评论:0      收藏:0      [点我收藏+]

密码生成器

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)
}

密码生成器

原文:https://www.cnblogs.com/egrep/p/11463545.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!