GoLang password_verify

is this article helpful? yes | no
GoLang replacement for PHP's password_verify [Golang Play | edit | history]
package main

import (
	"fmt"
	"golang.org/x/crypto/bcrypt"
)
 
func PasswordHash(password string) (string, error) {
	bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
	return string(bytes), err
}
 
func PasswordVerify(password, hash string) bool {
	err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
	return err == nil
}
 
func main() {
	password := "123456"
	hash, _ := PasswordHash(password)
 
	fmt.Println("password:", password)
	fmt.Println("hash:", hash)
 
	match := PasswordVerify(password, hash)
	 fmt.Println("Verify:", match)
}

Source: https://www.programmersought.com/article/53551785934/

PHP password_verify

PHP original manual for password_verify [ show | php.net ]

password_verify

(PHP 5 >= 5.5.0, PHP 7)

password_verifyVerifies that a password matches a hash

Description

bool password_verify ( string $password , string $hash )

Verifies that the given hash matches the given password.

Note that password_hash() returns the algorithm, cost and salt as part of the returned hash. Therefore, all information that's needed to verify the hash is included in it. This allows the verify function to verify the hash without needing separate storage for the salt or algorithm information.

This function is safe against timing attacks.

Parameters

password

The user's password.

hash

A hash created by password_hash().

Return Values

Returns TRUE if the password and hash match, or FALSE otherwise.

Examples

Example #1 password_verify() example

<?php
// See the password_hash() example to see where this came from.
$hash '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (
password_verify('rasmuslerdorf'$hash)) {
    echo 
'Password is valid!';
} else {
    echo 
'Invalid password.';
}
?>

The above example will output:

Password is valid!

See Also