암호 해시 함수 Bcrypt 의 최대 암호 길이 제한 상세 설명
Brypt 는 매우 유행 하 는 암호 해시 알고리즘 으로 Niels Provos 와 DavidMazi è res 가 Blowfish 암호 화 알고리즘 을 기반 으로 디자인 한 암호 해시 알고리즘 으로 1999 년 USENIX 협회 에 제출 되 었 다.Bcrypt 는 디자인 에 소금 Salt 를 포함 하여 무지개 표 공격 을 방어 하고 자가 적응 기능 도 제공 합 니 다.시간 이 지 날수 록 반복 수 를 증가 시 켜 집행 을 더욱 느리게 할 수 있 습 니 다.계산 능력 을 증가 하 더 라 도 Bcrypt 는 폭력 공격 에 저항 할 수 있 습 니 다.
Bcrypt 는 OpenBSD 와 SUSE Linux 등 운영 체제 의 기본 암호 해시 알고리즘 이다.그러나 Bcrypt 알고리즘 을 사용 할 때 최대 암호 길이 제한 이 있 습 니 다.보통 50~72 문자 이 고 정확 한 길이 제한 은 구체 적 인 Bcrypt 실현 에 달 려 있 습 니 다.최대 길이 가 넘 는 암 호 는 절 단 됩 니 다.
다음은 spring Security 의 BCryptPasswordEncoder 를 예 로 들 면:
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
// 72
String password1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
// 73
String password2 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab";
String encodedPassword1 = passwordEncoder.encode(password1);
boolean matches = passwordEncoder.matches(password2, encodedPassword1);
System.out.println("encodedPassword1: " + encodedPassword1);
System.out.println("matches: " + matches);
프로그램 을 실행 할 때 다음 결 과 를 출력 합 니 다.
encodedPassword1: $2a$10$A5OpVKgjEZzmy6UNsqzkjuG2xGET1wp3b/9ET5dz/tHQ3eRvyXSSO
matches: true
이 는 Password 문자열 이 72 자 를 넘 는 부분 이 절단 되 어 버 려 졌 음 을 증명 합 니 다.Bcrypt 암호 화 알고리즘 72 문자 길이 제한 문 제 를 해결 하려 면 다음 과 같이 할 수 있 습 니 다.
먼저 SHA-256 알고리즘 을 사용 하여 문자열 을 암호 화한 다음 에 Bcrypt 알고리즘 을 사용 하여 암호 화하 고 위조 코드 로 다음 과 같이 표시 합 니 다.
hashpw(sha256('password'), salt);
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
공개 키 암호 "RSA"의 구조 이해공개 키 비밀번호를 사용하는 대략적인 통신 절차를 아는 사람 공개 키 암호에 관심이 있는 사람 RSA 암호화는 다음 공식으로 나타낼 수 있습니다. E 및 N 그룹은 공개 키입니다. 디코딩은 다음과 같은 공식으로 표시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.