21 lines
		
	
	
		
			466 B
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			21 lines
		
	
	
		
			466 B
		
	
	
	
		
			Go
		
	
	
	
| 
								 | 
							
								package utils
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"golang.org/x/crypto/bcrypt"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func HashPassword(password string, cost int) (string, error) {
							 | 
						||
| 
								 | 
							
									bytes, err := bcrypt.GenerateFromPassword([]byte(password), cost)
							 | 
						||
| 
								 | 
							
									return string(bytes), err
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func CheckPasswordHash(password, hash string) bool {
							 | 
						||
| 
								 | 
							
									err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
							 | 
						||
| 
								 | 
							
									return err == nil
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func GetHashingCost(hashedPassword []byte) int {
							 | 
						||
| 
								 | 
							
									cost, _ := bcrypt.Cost(hashedPassword)
							 | 
						||
| 
								 | 
							
									return cost
							 | 
						||
| 
								 | 
							
								}
							 |