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
    }
    
  • 相关阅读:
    linux内存的使用与page buffer (转)
    基于linux2.6.38.8内核的SDIO/wifi驱动分析(转)
    RamDisk块设备驱动实例开发讲解一
    Linux加密框架设计与实现(转)
    v4l2子系统学习心得
    一句memset引发的疑案
    linux 信号量之SIGNAL 0(转)
    可重入函数
    从ARM VIVT看linux的cache 处理
    内核抢占与preempt_count
  • 原文地址:https://www.cnblogs.com/mingbai/p/goUtils.html
Copyright © 2011-2022 走看看