소금의 유일한 목적은 무지개 식 공격을 막는 것이라고 들었다. 그러나 분명히 이것보다 더 많은 가치가 있어야한다고 나는 들었다. 사전 기반 공격도 막지 않을까요? 그리고 무차별 한 약은 소금을 거기에서 사용할 수 있습니까? 왜 그런지 설명해 주시겠습니까?무지개 표 공격을 방지하기 위해 해시 소금을 사용합니까?
둘째, 마이크로 시간, 128 자의 소금 및 10 억에서 100 억 사이의 난수를 취한 알고리즘이 있다고 가정합니다. 이것은 큰 수준의 보안을 제공합니까? 침입자가 이러한 세부 사항 중 하나를 알고 있더라도, 나머지는 계산하기가 여전히 계산 불가능할 것입니다. 그래, 그래?
감사합니다,
벤
편집 :은 공격자가 해시 알고리즘에 액세스 할 수 없습니다 명확히하기 위해, 그래서 그들은 시스템에 대한 정보를 스팸 수 없습니다. 그들이 가지고있는 것은 모두 해시이며 컴파일 된 방법을 찾아야합니다. 확실하게 해시가 어떻게 생성되었는지 알았더라도 모든 조합을 긴 소금으로 무차별 적으로 시도하면 비현실적이 될 수 있습니다.
또한 해시는 사용자의 비밀번호 또는 사용자 이름이 아니며 인증에 사용되는 임의의 문자 집합입니다. 따라서 소금과 난수는 저장 될 필요가 없으며 결과물 인 해쉬 만 저장하면됩니다. 그런 경우 아래 코드와 같은 위의 시스템이 공격자가 사용자의 해시가 무엇인지 현실적으로 추측 할 수 없도록하는 좋은 시스템입니까?
$salt = "some random characters I made up";
hash('sha256', microtime(true).$salt.mt_rand(1000,9999));
위의 수십억 개 대신 1000-9999 개만 있습니다.
다시 한번 감사드립니다.
다음 번에 로그인 할 때 비밀번호가 생성되었을 때의 시스템 시간을 시스템에서 어떻게 알 수 있습니까? 저장하지 않으면 로그온을 인증 할 수 없습니다. 저장하면 소금의 일부가됩니다. 그러면 소금을 데이터베이스에 보관할 것입니다. –