문제

Bcrypt의 Javadoc 암호를 암호화하는 방법에 대한이 코드가 있습니다.

String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); 

일반 텍스트 암호가 이전에 해시 된 암호와 일치하는지 확인하려면 CheckPW 메소드를 사용하십시오.

if (BCrypt.checkpw(candidate_password, stored_hash))
    System.out.println("It matches");
else
    System.out.println("It does not match");

이 코드 스 니펫은 무작위로 생성 된 소금이 버려 졌다는 것을 의미합니다. 이것이 사실입니까, 아니면 오해의 소지가있는 코드 스 니펫입니까?

도움이 되었습니까?

해결책

염은 해시 (베이스 64 스타일 형식으로 인코딩 됨)에 통합된다.

예를 들어, 기존 유닉스 암호에서 소금은 비밀번호의 첫 두 문자로 저장되었습니다. 나머지 문자는 해시 값을 나타냅니다. 체커 기능은 이것을 알고 해시를 당겨 소금을 다시 꺼냅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top