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.