>데이터 베이스 >MySQL 튜토리얼 >해시된 비밀번호를 저장하려면 어떤 데이터 유형과 길이를 사용해야 합니까?

해시된 비밀번호를 저장하려면 어떤 데이터 유형과 길이를 사용해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-24 02:14:17610검색

What Data Type and Length Should I Use for Storing Hashed Passwords?

해시된 비밀번호에 대한 데이터 유형 및 최적 길이

질문: 해시된 비밀번호에 적합한 데이터 유형과 길이를 결정하는 방법은 무엇입니까?

비밀번호 해싱을 구현할 때 해시된 데이터를 저장하는 데 적합한 데이터 유형과 길이를 선택하는 것이 중요합니다. 가치. 일반적으로 해시 함수는 고정된 길이의 결과를 생성하지만 특정 알고리즘에 따라 길이와 표현이 다릅니다.

답변: 데이터 유형 및 길이 선택은 해싱 알고리즘에 따라 다릅니다. 채용:

  • MD5: 128비트 해시; CHAR(32) 또는 BINARY(16)로 저장될 수 있습니다.
  • SHA-1: 160비트 해시; CHAR(40) 또는 BINARY(20)로 저장될 수 있습니다.
  • SHA-256: 256비트 해시; CHAR(64) 또는 BINARY(32)로 저장될 수 있습니다.
  • SHA-512: 512비트 해시; CHAR(128) 또는 BINARY(64)로 저장될 수 있습니다.
  • BCrypt: 448비트 해시; CHAR(56), CHAR(60), CHAR(76), BINARY(56) 또는 BINARY(60)가 필요할 수 있습니다.

권장 사항:

NIST에서는 상호 운용성 애플리케이션을 위해 SHA-256 이상의 해시 함수를 사용할 것을 제안합니다. 그러나 이러한 해시 함수만을 활용하는 것만으로는 안전한 비밀번호 저장이 충분하지 않습니다.

따라서 Bcrypt 또는 Argon2i와 같은 키 강화 해시 알고리즘을 사용하는 것이 좋습니다. 예를 들어, PHP의 Password_hash() 함수는 기본적으로 Bcrypt를 사용하여 60자 해시를 생성합니다. 이를 수용하려면 저장에 CHAR(60) 데이터 유형을 사용하는 것이 좋습니다.

위 내용은 해시된 비밀번호를 저장하려면 어떤 데이터 유형과 길이를 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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