| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package utils
- import (
- "testing"
- "golang.org/x/crypto/bcrypt"
- )
- func TestVerifyPasswordMD5(t *testing.T) {
- hash := Md5("secret" + "rustdesk-api")
- ok, newHash, err := VerifyPassword(hash, "secret")
- if err != nil {
- t.Fatalf("md5 verify failed: %v", err)
- }
- if !ok || newHash == "" {
- t.Fatalf("md5 migration failed")
- }
- if bcrypt.CompareHashAndPassword([]byte(newHash), []byte("secret")) != nil {
- t.Fatalf("invalid rehash")
- }
- }
- func TestVerifyPasswordBcrypt(t *testing.T) {
- b, _ := bcrypt.GenerateFromPassword([]byte("pass"), bcrypt.DefaultCost)
- ok, newHash, err := VerifyPassword(string(b), "pass")
- if err != nil || !ok || newHash != "" {
- t.Fatalf("bcrypt verify failed")
- }
- }
- func TestVerifyPasswordMigrate(t *testing.T) {
- md5hash := Md5("mypass" + "rustdesk-api")
- ok, newHash, err := VerifyPassword(md5hash, "mypass")
- if err != nil || !ok || newHash == "" {
- t.Fatalf("expected bcrypt rehash")
- }
- if bcrypt.CompareHashAndPassword([]byte(newHash), []byte("mypass")) != nil {
- t.Fatalf("rehash not valid bcrypt")
- }
- }
|