mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	
				
					committed by
					
						
						techknowlogick
					
				
			
			
				
	
			
			
			
						parent
						
							1b85b248e4
						
					
				
				
					commit
					8d9d6aa903
				
			@@ -147,21 +147,29 @@ func TestHashPasswordDeterministic(t *testing.T) {
 | 
			
		||||
	b := make([]byte, 16)
 | 
			
		||||
	rand.Read(b)
 | 
			
		||||
	u := &User{Salt: string(b)}
 | 
			
		||||
	for i := 0; i < 50; i++ {
 | 
			
		||||
		// generate a random password
 | 
			
		||||
		rand.Read(b)
 | 
			
		||||
		pass := string(b)
 | 
			
		||||
	algos := []string{"pbkdf2", "argon2", "scrypt", "bcrypt"}
 | 
			
		||||
	for j := 0; j < len(algos); j++ {
 | 
			
		||||
		u.PasswdHashAlgo = algos[j]
 | 
			
		||||
		for i := 0; i < 50; i++ {
 | 
			
		||||
			// generate a random password
 | 
			
		||||
			rand.Read(b)
 | 
			
		||||
			pass := string(b)
 | 
			
		||||
 | 
			
		||||
		// save the current password in the user - hash it and store the result
 | 
			
		||||
		u.HashPassword(pass)
 | 
			
		||||
		r1 := u.Passwd
 | 
			
		||||
			// save the current password in the user - hash it and store the result
 | 
			
		||||
			u.HashPassword(pass)
 | 
			
		||||
			r1 := u.Passwd
 | 
			
		||||
 | 
			
		||||
		// run again
 | 
			
		||||
		u.HashPassword(pass)
 | 
			
		||||
		r2 := u.Passwd
 | 
			
		||||
			// run again
 | 
			
		||||
			u.HashPassword(pass)
 | 
			
		||||
			r2 := u.Passwd
 | 
			
		||||
 | 
			
		||||
		// assert equal (given the same salt+pass, the same result is produced)
 | 
			
		||||
		assert.Equal(t, r1, r2)
 | 
			
		||||
			// assert equal (given the same salt+pass, the same result is produced) except bcrypt
 | 
			
		||||
			if u.PasswdHashAlgo == "bcrypt" {
 | 
			
		||||
				assert.NotEqual(t, r1, r2)
 | 
			
		||||
			} else {
 | 
			
		||||
				assert.Equal(t, r1, r2)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user