문제

나의 데이타베이스가 있는 해시된 암호이 없는 소금 추가하기 전에 그들은 해시.고 싶은 소금을 추가하는 새로운 암호를 암호화합니다.분명히 나는 메시지를 보낼 수있는 전시 기존.

당신은 어떻게 마이그레이션하는 새로운 해시스템?

도움이 되었습니까?

해결책

지 확인할 수 있습니다.추가 소금을 기존 해시하고 해시습니다.물론 이것은 어떤 미래의 로그인 이동 동일한 과정을 통해 의미를 두 해쉬 기능을 필요로 할 것이라고 하지만 많이 합법적인 패턴 이렇게 어쨌든 그래서 그것은 냄새가 나지 않는 나쁜 생각할 수 있습니다.

소금에 절인 암호하기위한 노력의 일환입니다에 대한 방어 레인보우 테이블이 있습니다.이 경우에는 소금이 필요가 없는 비밀은 없습니다.

http://en.wikipedia.org/wiki/Rainbow_tables#Defense_against_rainbow_tables

당신은 실제로 볼 수 있 문서

hash = MD5 (MD5 (password) . salt)

는 똑같은 방법을 사용하는 것입니다.(제외하고 다른 해쉬함수.)

다른 팁

으로 빠른 해결을 만들 수 있습니다 소금 데이터베이스에서 열며,사용자가 로그인할 때에 올바르게 일치하는 오래 된 해쉬를 사용하여 다음을 수행할 수 있습니하는 암호는 그들이 입력으로 소금을 만들고 새로운 해시입니다.

을 추가할 수 있습의 열로 구성된 국 여부를 보여주는 사용자가 인 (소금)또는 (소금)해시입니다.

좋은,그 시점에서,모든 사용자가 암호를 변경하에 로그인합니다.이 방법은 당신이 얻을 수 있습의 열니다.

저는 처리는 유사한 문제와 관련된 여러 해싱하는 기술.내가 사용하는 방식의 인코딩을 해시 방법이 유형 데이터베이스에서뿐만 아니라(i.e'알파','베타','감마','delta').난 모든 현재의 해시 적절한 수준이다.으로 사용하여 로그인한 사용자,나는 검증된 암호를 다시 해쉬를 사용하여 그들이 업데이트 방법이 있습니다.우리의 암호가 만료 후 90 일,그래서 그것의 문제를 들고 3 개월 전까지 모든 비밀번호를 사용하는 오래된 방법을 수 있습니다.

여기에 몇 가지 방법 는 당신을 위해 일할 수 있습니다.
기억하는 모든 일정한 패턴을 추가로 기존 해시 쓸모(하나의 트릭에서 해당 링크를 제안하는 그런 것 같).이 없어야 식별할 수 있는 패턴을 격리시키는 데 사용합니다.

물론,가장 좋은 방법이 될 것이 소금에 절인 해쉬테이블에 추가한다.

새로 만들 필드에서 당신은 데이터베이스 이름은"소금에 절"유형의 true/false(또는 해당에서 당신의 DBMS).모든 설정 값을 false 로 기존 해시입니다.때마다,새로운 소금,해시 추가되는,설정"소금에 절인"필드를 진실하다.

그 후,당신이해야 할 모든 것을 처리의 두 가지 유형이 다르게 해시에서 당신의 코드입니다.

이의 더 많은 것이 일반적인 솔루션을 보다 특정한 하나,하지만 그것은 문제를 해결합니다.

를 저장하는 경우에는 소금 안쪽 해시,그것은 매우 바로 앞으로 결정하는 경우에는 소금이 포함되어 있을 확인하여 길이의이다.이 없는 경우에는 소금,단지 해시 암호가 있다면 소금,해시 비밀번호+salt.

할 필요가 없는 부울에서 열의 데이터베이스입니다.

최고의 방법으로 저장 소금은 소금을 포함하는 값 비밀번호에 hash+금 나는 그냥 만들어집니다.I 추가하지 않는 소금 문자열의 시작 또는 끝을 해시,말 그대로 귀하의 소금으로 해시입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top