41 lines
814 B
Go
41 lines
814 B
Go
|
|
package securityUtil
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"crypto/sha256"
|
|||
|
|
"errors"
|
|||
|
|
"fmt"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// 对字符串进行SHA256加密,并且可以选择返回大、小写
|
|||
|
|
// s:输入字符串
|
|||
|
|
// ifUpper:输出是否大写
|
|||
|
|
// 返回值:sha256加密后的十六进制字符串
|
|||
|
|
func Sha256String(s string, ifUpper bool) string {
|
|||
|
|
if len(s) == 0 {
|
|||
|
|
panic(errors.New("input string can't be empty"))
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
buf := Sha256Bytes([]byte(s))
|
|||
|
|
|
|||
|
|
if ifUpper {
|
|||
|
|
return fmt.Sprintf("%X", buf)
|
|||
|
|
} else {
|
|||
|
|
return fmt.Sprintf("%x", buf)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 对字符数组进行SHA256加密
|
|||
|
|
// b:输入字符数组
|
|||
|
|
// 返回值:sha256加密后的原数据
|
|||
|
|
func Sha256Bytes(b []byte) []byte {
|
|||
|
|
if len(b) == 0 {
|
|||
|
|
panic(errors.New("input []byte can't be empty"))
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
sha1Instance := sha256.New()
|
|||
|
|
sha1Instance.Write(b)
|
|||
|
|
result := sha1Instance.Sum(nil)
|
|||
|
|
|
|||
|
|
return result
|
|||
|
|
}
|