完善不同加密方法的使用
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package encryptx
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"code.yun.ink/pkg/encryptx/blake2x"
|
||||
"code.yun.ink/pkg/encryptx/md5x"
|
||||
"code.yun.ink/pkg/encryptx/ripemd160x"
|
||||
"code.yun.ink/pkg/encryptx/sha1x"
|
||||
"code.yun.ink/pkg/encryptx/sha256x"
|
||||
"code.yun.ink/pkg/encryptx/sha3x"
|
||||
"code.yun.ink/pkg/encryptx/sha512x"
|
||||
)
|
||||
|
||||
// hashHex 计算哈希并返回小写十六进制字符串。
|
||||
//
|
||||
// 各哈希包都提供统一签名的 Hex([]byte) string,因此这里只是一张映射表;
|
||||
// 带位数后缀的包(sha256x / sha512x / sha3x / blake2x)按具体变体取函数。
|
||||
func hashHex(encryptType EncryptType, data []byte) (string, error) {
|
||||
switch encryptType {
|
||||
case MD5:
|
||||
return md5x.Hex(data), nil
|
||||
case SHA1:
|
||||
return sha1x.Hex(data), nil
|
||||
case SHA224:
|
||||
return sha256x.Hex224(data), nil
|
||||
case SHA256:
|
||||
return sha256x.Hex256(data), nil
|
||||
case SHA384:
|
||||
return sha512x.Hex384(data), nil
|
||||
case SHA512:
|
||||
return sha512x.Hex512(data), nil
|
||||
case SHA3_224:
|
||||
return sha3x.Hex224(data), nil
|
||||
case SHA3_256:
|
||||
return sha3x.Hex256(data), nil
|
||||
case SHA3_384:
|
||||
return sha3x.Hex384(data), nil
|
||||
case SHA3_512:
|
||||
return sha3x.Hex512(data), nil
|
||||
case BLAKE2B_256:
|
||||
return blake2x.Hex256B(data), nil
|
||||
case BLAKE2S_256:
|
||||
return blake2x.Hex256S(data), nil
|
||||
case RIPEMD160:
|
||||
return ripemd160x.Hex(data), nil
|
||||
}
|
||||
return "", fmt.Errorf("%w: %s 不是哈希算法", ErrUnsupportedType, encryptType)
|
||||
}
|
||||
Reference in New Issue
Block a user