Documentation
¶
Index ¶
- func AesDecryptECB(ciphertext []byte, key []byte) ([]byte, error)
- func AesEncryptECB(plaintext []byte, key []byte) ([]byte, error)
- func CheckPasswordHash(password, hash string) bool
- func DecryptAESCFB(key []byte, ciphertext string) ([]byte, error)
- func EncryptAESCFB(key []byte, plaintext []byte) (string, error)
- func GenToken(secret string, duration time.Duration, claims jwt.MapClaims) (string, error)
- func GenerateAESCFBKey(size int) ([]byte, error)
- func GenerateAESECBKey(length int) ([]byte, error)
- func HashPassword(password string) (string, error)
- func MD5(str []byte, b ...byte) string
- func MD5Salt(password, salt string) string
- func ParseToken(tokenString string, secret string) (jwt.MapClaims, error)
- func Pkcs7Padding(data []byte, blockSize int) []byte
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AesDecryptECB ¶
AesDecryptECB 解密数据
// 解密数据
decryptedPlaintext, err := auth.AesDecryptECB(ciphertext, key)
if err != nil {
panic(err)
}
fmt.Println("Decrypted plaintext:", string(decryptedPlaintext))
func AesEncryptECB ¶
AesEncryptECB 加密数据 加密模式ECB
// 生成随机的AES密钥
key, err := auth.GenerateAESECBKey(16)
if err != nil {
panic(err)
}
fmt.Println("Generated AES key:", hex.EncodeToString(key))
// 加密数据
plaintext := []byte("Hello, world!")
ciphertext, err := auth.AesEncryptECB(plaintext, key)
// 将加密后的数据编码为 base64 字符串
ciphertextBase64 := base64.StdEncoding.EncodeToString(ciphertext)
// 输出加密后的数据
fmt.Println("Ciphertext (Base64):", ciphertextBase64)
func CheckPasswordHash ¶
CheckPasswordHash 密码验证
// 比较密码和哈希值是否匹配
passwordMatch := CheckPasswordHash(password, hashedPassword)
if !passwordMatch {
// 密码与哈希值不匹配
}
func DecryptAESCFB ¶
DecryptAESCFB 解密数据
// 解密数据
decryptedPlaintext, err := auth.DecryptAES(key, ciphertext)
if err != nil {
panic(err)
}
fmt.Println("Decrypted plaintext:", string(decryptedPlaintext))
func EncryptAESCFB ¶
EncryptAESCFB 加密数据 加密模式CFB
// 生成随机的AES密钥
key, err := auth.GenerateAESKey()
if err != nil {
panic(err)
}
fmt.Println("Generated AES key:", key)
// 加密数据
plaintext := []byte("Hello, world!")
ciphertext, err := auth.EncryptAES(key, plaintext)
if err != nil {
panic(err)
}
fmt.Println("Encrypted ciphertext:", ciphertext)
func GenToken ¶
GenToken 生成JWT
secret := "mySecretKey"
duration := time.Hour * 24 * 7 // 1 week
// 生成 JWT
claims := jwt.MapClaims{
"iss": "myapp", // 签发人
"sub": "12345", // 主题
"nbf": time.Now().Unix(), // 生效时间
"custom_field": "custom_value", // 自定义字段
}
tokenString, err := generateToken(secret, duration, claims)
if err != nil {
panic(err)
}
fmt.Printf("生成的 token: %s\n", tokenString)
func GenerateAESCFBKey ¶
GenerateAESCFBKey 生成一个随机的AES密钥
密钥长度必须是 16、24 或 32 字节,分别对应 AES-128、AES-192 和 AES-256 算法。
密钥必须是随机的,不应该是固定的字符串。
密钥不应该使用单向散列函数(如 SHA-256)等进行转换,因为这会降低密钥的熵。
密钥应该足够长和复杂,以提高破解的难度。
// 生成随机的AES密钥
key, err := auth.GenerateAESKey()
if err != nil {
panic(err)
}
fmt.Println("Generated AES key:", hex.EncodeToString(key))
// 加密数据
keyString := hex.EncodeToString(key)
fmt.Println("转生产String",keyString)
keyListByte, _ := hex.DecodeString(key2)
fmt.Println("转生产[]Byte",keyListByte)
func GenerateAESECBKey ¶
GenerateAESECBKey 生成一个随机的AES ECB密钥
func HashPassword ¶
HashPassword 加密
password := "myPassword123"
// 将密码哈希
hashedPassword, err := HashPassword(password)
if err != nil {
// 哈希过程中发生错误
}
func ParseToken ¶
ParseToken 解析JWT
secret := "mySecretKey"
// 解析 JWT
claims, err = parseToken(tokenString, secret)
if err != nil {
panic(err)
}
fmt.Printf("解析的 token: %+v\n", claims)
func Pkcs7Padding ¶
Pkcs7Padding 使用 PKCS7 填充方式对数据进行填充
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.