암호 해독 전문가는 아니지만 그 방법은 다소 약합니다. 사용 된 기본 해시 알고리즘은 DES의 수정 된 버전이기 때문에 비교적 짧은 시간에 비교적 비싼 하드웨어로 해독 될 수 있습니다. 수정되지 않은 DES는 1998 년 EFF Deep Crack에 의해 22 시간 만에 금이 갔거나이 수정 된 버전에 대한 충돌을 발견하는 것이 그렇게 어렵지 않아야합니다.
또한 crypt
manpage (PHP 함수는 유닉스 나 시스템에 배치된다)보고 :
경고 : 키 스페이스는 2 ** 56 개 7.2e16 가능한 값으로 이루어져있다. 대용량 병렬 컴퓨터를 사용하여이 키 공간을 철저히 검색 할 수 있습니다. 크랙 (1)과 같은 소프트웨어는이 키 공간에서 사람이 일반적으로 암호로 사용하는 부분을 검색합니다. 따라서 암호 선택은 최소한 일반적인 단어와 이름을 피해야합니다.
대신, SHA-512을 사용하고 여러 해시 라운드를 수행 mcrypt_create_iv
가를 제공과 함께, 충분한 라운드
// Take advantage of mcrypt extension if it is installed!
// Otherwise, generate $salt in any other way, but don't use a fixed one
$salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
$hash = crypt($password, '$6$rounds=10000$' . $salt . '$');
echo $hash;
SHA-512는 유닉스 계열의 땅에서 암호 해시에 대한 산업 표준으로 간주됩니다 좋은 (엔트로피의 의미에서) $salt
.
최종주의 사항 : 올바른 소금을 사용하고 각 사용자마다 다른 소금을 생성하십시오..
이렇게하면 충돌 가능성이 줄어들지 만 문제는 데이터를 해독하는 것이 얼마나 쉬워 졌는지를 사용자가 사용하는 소금에 거의 불가능합니다. –
OP가 쓴 : "정확히 얼마나 안전한가? ** 예를 들어 ... ...". 키 해독은 가능한 문제의 한 예일뿐입니다. 왜 downvote? –
나는 고쳐졌다. 그것은 실제로 예였습니다. –