32 lines
683 B
Go
32 lines
683 B
Go
|
package crypto
|
|||
|
|
|||
|
import (
|
|||
|
"crypto/rand"
|
|||
|
"encoding/hex"
|
|||
|
"io"
|
|||
|
)
|
|||
|
|
|||
|
// 生成AES-128密钥的函数,符合市面规范
|
|||
|
func GenerateSecretKey() (string, error) {
|
|||
|
key := make([]byte, 16) // 16字节密钥
|
|||
|
_, err := io.ReadFull(rand.Reader, key)
|
|||
|
if err != nil {
|
|||
|
return "", err
|
|||
|
}
|
|||
|
return hex.EncodeToString(key), nil
|
|||
|
}
|
|||
|
|
|||
|
func GenerateSecretId() (string, error) {
|
|||
|
// 创建一个字节数组,用于存储随机数据
|
|||
|
bytes := make([]byte, 8) // 因为每个字节表示两个16进制字符
|
|||
|
|
|||
|
// 读取随机字节到数组中
|
|||
|
_, err := rand.Read(bytes)
|
|||
|
if err != nil {
|
|||
|
return "", err
|
|||
|
}
|
|||
|
|
|||
|
// 将字节数组转换为16进制字符串
|
|||
|
return hex.EncodeToString(bytes), nil
|
|||
|
}
|