zoukankan      html  css  js  c++  java
  • go golang 判断base64数据 获取随机字符串 截取字符串

    go golang 判断base64数据 获取随机字符串 截取字符串

    先少写点,占个坑,以后接着加。
    1,获取指定长度随机字符串
    func RandomDigits(length int) string {
    	return randomString(length, []byte(Digits))
    }
    
    
    func randomString(length int, base []byte) string {
    	bytes := make([]byte, length)
    	maxIndex := len(base)
    	for i := 0; i < length; i++ {
    		index := rand.Intn(maxIndex)
    		bytes[i] = byte(base[index])
    	}
    
    	return string(bytes)
    }
    
    3,指定开头的结尾位置,随机字符串
    func Substr2(str string, start int, end int) string {
    	rs := []rune(str)
    	length := len(rs)
    
    	if start < 0 || start > length {
    		panic("start is wrong")
    	}
    
    	if end < 0 || end > length {
    		panic("end is wrong")
    	}
    	return string(rs[start:end])
    }
    
    4,判断是否为base64 数据
    //不能判断一定是,可以判断一定不是。判断方式,base64只包含特定字符;解码再转码,查验是否相等。目前貌似没有能一定判断是的方法,有的话请指正,感谢。
    func JudgeBase64(str string) bool {
    	pattern := "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$"
    	matched, err := regexp.MatchString(pattern, str)
    	if err != nil {
    		return false
    	}
    	if !(len(str)%4 == 0 && matched) {
    		return false
    	}
    	unCodeStr, err := base64.StdEncoding.DecodeString(str)
    	if err != nil {
    		return false
    	}
    	tranStr := base64.StdEncoding.EncodeToString(unCodeStr)
    	//return str==base64.StdEncoding.EncodeToString(unCodeStr)
    	if str == tranStr {
    		return true
    	}
    	return false
    }
    
  • 相关阅读:
    asp.net pager
    asp.net 2.0
    mul page
    基于 Ajax 的持久对象映射(reship)
    asp.net run
    reship HttpProc
    some questions
    rss feed
    javascript function
    ioc
  • 原文地址:https://www.cnblogs.com/mingbai/p/goUtils.html
Copyright © 2011-2022 走看看