非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256
字符串转换成 bytes -> padding -> base64 编码
根据字符串所占长度不同,长度会扩充到不同倍数
将bytes 字符填充到16的整数倍,长度最大增加16
长度增加28(消息校验体16, 随机数12)
长度填充到3整数倍, 之后4/3
大致上最大长度为 4/3* n *length + 64
getCount 计算:
func getCount(text string) int {
l := countBytes(text)
l = countPadding(l)
l = countEncrypt(l, true)
l = countBase64(l)
return l
}
func countBytes(text string) int {
orig := []byte(text)
return len(orig)
}
func countPadding(l int) int {
pl := 16 - (l % 16)
return l + pl
}
func countEncrypt(l int, flag bool) int {
if flag == false {
return l + 16
}
return l + 16 + 12
}
func countBase64(l int) int {
if l%3 == 0 {
return l / 3 * 4
} else {
return (l/3 + 1) * 4
}
}
内推链接
微信号:程序员财富自由之路
博客:CSDN 王小明
关注我们,了解更多