44 lines
761 B
Go
44 lines
761 B
Go
package password
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestHMACCrypto_EncryptAndVerify(t *testing.T) {
|
|
secretKey := "mysecretkey"
|
|
crypto := NewHMACCrypto(secretKey)
|
|
|
|
data := "testdata"
|
|
|
|
// 测试加密
|
|
encrypted, err := crypto.Encrypt(data)
|
|
if err != nil {
|
|
t.Fatalf("加密失败: %v", err)
|
|
}
|
|
|
|
if encrypted == "" {
|
|
t.Fatal("加密结果为空")
|
|
}
|
|
t.Log(encrypted)
|
|
|
|
// 测试验证
|
|
isValid, err := crypto.Verify(data, encrypted)
|
|
if err != nil {
|
|
t.Fatalf("验证失败: %v", err)
|
|
}
|
|
|
|
if !isValid {
|
|
t.Fatal("验证结果不匹配")
|
|
}
|
|
|
|
// 测试验证失败的情况
|
|
isValid, err = crypto.Verify("wrongdata", encrypted)
|
|
if err != nil {
|
|
t.Fatalf("验证失败: %v", err)
|
|
}
|
|
|
|
if isValid {
|
|
t.Fatal("验证结果错误,预期验证失败")
|
|
}
|
|
}
|