라이브러리

[PHP] sodium_crypto_pwhash_scryptsalsa208sha256_str_verify - 비밀번호가 유효한 비밀번호 검증 문자열인지 확인합니다.




비밀번호 해시 함수: sodium_crypto_pwhash_scryptsalsa208sha256

PHP의 `sodium_crypto_pwhash_scryptsalsa208sha256` 함수는 비밀번호를 해시화하는 데 사용되는 함수입니다. 이 함수는 Scrypt 알고리즘을 사용하여 비밀번호를 해시화하고, 해시된 비밀번호를 저장합니다. 이 함수는 비밀번호를 안전하게 저장하고, 해킹 공격을 방지하기 위해 사용됩니다.

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify

`sodium_crypto_pwhash_scryptsalsa208sha256_str_verify` 함수는 비밀번호를 해시화한 후, 저장된 해시된 비밀번호와 비교하는 데 사용되는 함수입니다. 이 함수는 입력된 비밀번호가 저장된 해시된 비밀번호와 일치하는지 여부를 확인합니다.

사용 예제

#hostingforum.kr
php

<?php



// 비밀번호를 해시화하는 함수

function hashPassword($password) {

    $salt = random_bytes(16);

    $hashedPassword = sodium_crypto_pwhash_scryptsalsa208sha256(

        $password,

        $salt,

        4096,

        8,

        1,

        32

    );

    return sodium_bin2hex($salt) . ':' . sodium_bin2hex($hashedPassword);

}



// 비밀번호를 저장하는 함수

function savePassword($username, $password) {

    $hashedPassword = hashPassword($password);

    // 비밀번호를 데이터베이스에 저장합니다.

    // 예를 들어, MySQL 데이터베이스에 저장하는 경우:

    // $conn = new mysqli("localhost", "username", "password", "database");

    // $conn->query("INSERT INTO users (username, password) VALUES ('$username', '$hashedPassword')");

}



// 비밀번호를 확인하는 함수

function verifyPassword($username, $password) {

    // 데이터베이스에서 저장된 비밀번호를 가져옵니다.

    // 예를 들어, MySQL 데이터베이스에서 가져오는 경우:

    // $conn = new mysqli("localhost", "username", "password", "database");

    // $result = $conn->query("SELECT password FROM users WHERE username = '$username'");

    // $hashedPassword = $result->fetch_assoc()['password'];

    $hashedPassword = 'salt:' . 'hashed_password'; // 예시용 데이터



    // 저장된 해시된 비밀번호를 가져옵니다.

    $salt = substr($hashedPassword, 0, 32);

    $hashedPassword = substr($hashedPassword, 33);



    // 입력된 비밀번호를 해시화합니다.

    $inputHashedPassword = sodium_crypto_pwhash_scryptsalsa208sha256(

        $password,

        sodium_hex2bin($salt),

        4096,

        8,

        1,

        32

    );



    // 입력된 비밀번호가 저장된 해시된 비밀번호와 일치하는지 여부를 확인합니다.

    return sodium_crypto_pwhash_scryptsalsa208sha256_str_verify($inputHashedPassword, sodium_hex2bin($hashedPassword));

}



// 예시용 데이터

$username = 'example';

$password = 'example';



// 비밀번호를 저장합니다.

savePassword($username, $password);



// 비밀번호를 확인합니다.

if (verifyPassword($username, $password)) {

    echo '비밀번호가 일치합니다.';

} else {

    echo '비밀번호가 일치하지 않습니다.';

}



이 예제에서는 `sodium_crypto_pwhash_scryptsalsa208sha256` 함수를 사용하여 비밀번호를 해시화하고, `sodium_crypto_pwhash_scryptsalsa208sha256_str_verify` 함수를 사용하여 입력된 비밀번호가 저장된 해시된 비밀번호와 일치하는지 여부를 확인합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 174 페이지

검색

게시물 검색