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) }