20 lines
783 B
Go
20 lines
783 B
Go
package gameplatform
|
|
|
|
import "testing"
|
|
|
|
func TestLegacyPasswordFormats(t *testing.T) {
|
|
p := &Passwords{AuthCode: "test-auth", MigrateAuthCode: "test-migrate", TablePrefix: "sys_"}
|
|
// 固定向量由独立的 Python hashlib 按原 Java 算法生成。
|
|
for _, hash := range []string{"###eef6d9b7160f32a869f3e03b7ea575a5", "9db2515d8fcc62cc2d8b4bf2d8728120d052163a77df7f09", "##$##073cf9a979400c63c0dc69f201efcdf8"} {
|
|
if ok, err := p.Verify("demo123", hash); err != nil || !ok {
|
|
t.Fatalf("旧密码格式不兼容: %v", err)
|
|
}
|
|
if ok, _ := p.Verify("wrong", hash); ok {
|
|
t.Fatal("错误密码被接受")
|
|
}
|
|
}
|
|
if ok, err := (&Passwords{}).Verify("demo123", "###eef6d9b7160f32a869f3e03b7ea575a5"); ok || err == nil {
|
|
t.Fatal("缺少兼容盐时必须明确报错")
|
|
}
|
|
}
|