>백엔드 개발 >Golang >PHP의 crypt() 기능과 동등한 Golang의 비밀번호 해싱을 달성하는 방법은 무엇입니까?

PHP의 crypt() 기능과 동등한 Golang의 비밀번호 해싱을 달성하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-27 02:13:30756검색

How to Achieve Password Hashing in Golang Equivalent to PHP's crypt() Function?

PHP의 crypt() 함수에 해당하는 Golang

PHP의 crypt() 함수는 다음을 포함한 다양한 알고리즘을 사용하여 값을 해시하는 기능이 있다는 점에서 다용도입니다. sha256, sha512 및 복어. 이러한 변형으로 인해 정확한 Golang과 동등한 것을 찾는 것이 어려울 수 있습니다.

bcrypt를 사용하는 대체 솔루션

정확한 Golang과 동등한 것이 부족함에도 불구하고 bcrypt는 신뢰할 수 있는 대안을 제공합니다. 비밀번호 해싱. 비슷한 기능을 구현하는 방법은 다음과 같습니다.

<code class="go">import "golang.org/x/crypto/bcrypt"

// Determines if the bcrypt version of "enter-new-password" matches the provided hash
check := bcrypt.CompareHashAndPassword([]byte("a$f5561d2634fb28a969f2dO8QeQ70f4bjCnF/.GvPpjj.8jgmtzZP2"), []byte("enter-new-password"))

// Log the result
log.Println(check)</code>

이 코드는 "enter-new-password"의 bcrypt 버전이 제공된 해시와 일치하는 경우 nil을 반환하고 그렇지 않으면 오류 개체를 반환합니다.

고려 사항:

  • PHP의 crypt() 함수는 광범위한 해싱 알고리즘을 제공하는 반면 Golang은 해시 유형 및 비용에 대한 명시적인 지정을 요구합니다.
  • 예제에서 단, 해시 값에 "$2a$" 접두사가 포함되어 복어 유형의 해시가 가정되었습니다.

위 내용은 PHP의 crypt() 기능과 동등한 Golang의 비밀번호 해싱을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.