2016-08-11 4 views
1

내가하는 Liferay는 128,000 원을 사용하여 160 비트 해시를 생성 기본적으로 PBKDF2WithHmacSHA1/128,000분의 160 알고리즘을 사용하고 있음을 발견했다.이해하는 Liferay 비밀번호 암호화

내가 기본 유형 "PBKDF2WithHmacSHA1/128,000분의 160"로

#passwords.encryption.algorithm=BCRYPT/10 
#passwords.encryption.algorithm=MD2 
#passwords.encryption.algorithm=MD5 
#passwords.encryption.algorithm=NONE 
#passwords.encryption.algorithm=PBKDF2WithHmacSHA1/160/128000 
#passwords.encryption.algorithm=SHA 
#passwords.encryption.algorithm=SHA-256 
#passwords.encryption.algorithm=SHA-384 
#passwords.encryption.algorithm=SSHA 
#passwords.encryption.algorithm=UFC-CRYPT 

파일 내 portal-ext.properties에서 그들을 적용하여 다음과 같은 유형을 사용할 수 있습니다 나는 모든 암호가 시작 생성되고 있음을 발견 접두사 "AAAAoAAB9A" 등으로 "AAAAoAAB9ACpjEM1K54bHX0UMY + 3AgeAX3n50ZGERRK6MpxC"

내가 언급 한 알고리즘을 사용하는 동안 모든 암호가이 접두어로 시작하는 이유를 알아야합니다. "$ (2A) $ 10 $ Xyx.o1kv1mIr8rtpr9sxwOP6AC9I/u7tAIlyfrzp8Vlqcek/CGdQ"

: 다른 알고리즘 "BCRYPT/10"난 내 암호로 시작하는 것을 알아 냈다 "$의 2A $ 10"등을 사용하여

어떤 사람들은 "$ 2a $ 10"에서 "10"을 얻었고 암호는 10 라운드의 소금으로 해시되었습니다. 이게 맞습니까? 아니면 잘못 듣고 있습니까?

+1

bcrypt는 선형 라운드/반복 수를 사용하지 않고 대수 비용 계수를 사용합니다. 또한 liferay는 오픈 소스이기 때문에 소스 코드를 살펴볼 수 있습니다. –

+1

당신이 정확합니다; bcrypt (기본적으로 모든 KDF)는 실행하기 전에 매개 변수를 알아야하므로 "중지"하고 비교할시기를 알 수 있습니다. pbkdf2 루틴에서와 같이 시스템에서 그 값이 일정하면 그 정보를 제거하고 나중에 다시 패치 할 수 있지만 왜 귀찮을까요? – dandavis

+0

@efxeekay 하나의 질문에 두 가지 이상의 질문을합니다. 두 번째 질문을 새로운 게시물로 추출하십시오 - 사람들이 한 번에 한 가지 문제에 집중할 수있게 도와줍니다. –

답변

0

을 Liferay은 기본적 PBKDF2WithHmacSHA1/128,000분의 160는 암호화 암호의 ByteBuffer에서 다음 순서로 배치되는 "키 크기, 발사, 소금 및 비밀 키의 바이트 수" 바이트의 조합 사용 조합을 통한 Base64 인코딩

그래서에 접두사 "AAAAoAAB9A '이되는 이유 :이 전체로서 부호화되는 키 크기와 라운드의 수 (즉 128,000분의 160) 바이트 버퍼의 조합이기 때문에"AAAAoAAB9ACpjEM1K54bHX0UMY + 3AgeAX3n50ZGERRK6MpxC는 " Base64로. 키 크기와 라운드 수를 변경하면 다른 접두어가 붙습니다.

관련 문제