Golang密码复杂度校验

//密码强度必须为字⺟⼤⼩写+数字+符号,8位以上
func CheckPasswordLever(ps string) error {
    if len(ps) < 8 {
        return fmt.Errorf("password len is < 9")
    }
    num := `[0-9]{1}`
    a_z := `[a-z]{1}`
    A_Z := `[A-Z]{1}`
    symbol := `[!@#~$%^&*()+|_]{1}`
    if b, err := regexp.MatchString(num, ps); !b || err != nil {
        return fmt.Errorf("password need num :%v", err)
    }
    if b, err := regexp.MatchString(a_z, ps); !b || err != nil {
        return fmt.Errorf("password need a_z :%v", err)
    }
    if b, err := regexp.MatchString(A_Z, ps); !b || err != nil {
        return fmt.Errorf("password need A_Z :%v", err)
    }
    if b, err := regexp.MatchString(symbol, ps); !b || err != nil {
        return fmt.Errorf("password need symbol :%v", err)
    }
    return nil
}

 

posted on 2021-09-22 20:44  torotoise512  阅读(538)  评论(0编辑  收藏  举报