이것은 소금이 어떻게 인코딩 되었기 때문입니다. 실제 소금은 128 비트이지만 crypt
형식의 인코딩 된 소금은 22 문자 8 비트/문자 3/4 = 132 비트입니다. 따라서 인코딩 된 소금의 4 비트는 실제로 사용되지 않습니다. 여기
$hashes = array();
$chars = array_merge(array('.','/'), range('A','Z'), range('a','z'), range('0','9'));
foreach ($chars as $char) {
$salt = 'QAZXSWEDCVFRTGBNHYUJM'.$char;
$hashes[$salt] = crypt('pass','$2a$08$'.$salt);
}
var_dump($hashes);
동일한 해시 결과 부호화 염 :
이 또한 최하위 캐릭터의 제 4 비트가 동일한 동일한 해시 결과 16 인코딩 염이 있다는 것을 의미 :
QAZXSWEDCVFRTGBNHYUJM.
QAZXSWEDCVFRTGBNHYUJM/
QAZXSWEDCVFRTGBNHYUJMA
QAZXSWEDCVFRTGBNHYUJMB
QAZXSWEDCVFRTGBNHYUJMC
QAZXSWEDCVFRTGBNHYUJMD
QAZXSWEDCVFRTGBNHYUJME
QAZXSWEDCVFRTGBNHYUJMF
QAZXSWEDCVFRTGBNHYUJMG
QAZXSWEDCVFRTGBNHYUJMH
QAZXSWEDCVFRTGBNHYUJMI
QAZXSWEDCVFRTGBNHYUJMJ
QAZXSWEDCVFRTGBNHYUJMK
QAZXSWEDCVFRTGBNHYUJML
QAZXSWEDCVFRTGBNHYUJMM
QAZXSWEDCVFRTGBNHYUJMN
crypt
아마도 단지 내부적
QAZXSWEDCVFRTGBNHYUJM.
128 비트 염을 사용하는 암호화 제 이용한다.
나는 당신이 무엇을 요구하고 있는지 잘 모르겠습니다. K가 소금에 있어야하는 이유는 무엇입니까? – Blender
'K'는'salt' 문자열에 있기 때문에 충분하지 않습니다. – msoa