MD5 해시를 사용하여 데이터베이스에 사용자 비밀번호가 저장되어있는 이전 애플리케이션이 있습니다. 나는 이것을 SHA-2 패밀리의 어떤 것으로 바꾸고 싶다.MD5에서 SHA로 암호 해싱을 어떻게 변환합니까?
나는 이것을 수행하는 두 가지 방법을 생각해 냈지만 두 가지 모두 다소 어수선해 보입니다.
1) 부울 "플래그"필드를 추가하십시오. 이 후에 사용자가 처음으로 인증 할 때 MD5 암호 해시를 SHA 암호 해시로 바꾸고 플래그를 설정하십시오. 그런 다음 플래그를 검사하여 암호 해시가 변환되었는지 확인할 수 있습니다.
2) SHA 해시를 저장할 두 번째 암호 필드를 추가하십시오. 이 후에 사용자가 처음으로 인증하면 SHA로 암호를 해시하고 새 필드에 저장합니다 (동시에 MD5 해시를 삭제할 수 있음). 그런 다음 SHA 필드에 값이 있는지 확인할 수 있습니다. 이것은 본질적으로 내 깃발이됩니다.
어느 경우 든 로그인 빈도가 낮은 사용자는 잠시 동안 MD5 인증을 유지해야합니다. 더 이상 활성화되지 않은 사용자는 절대로 SHA로 전환되지 않습니다.
더 좋은 방법이 있나요?
당신이 솔루션은 나에게 좋아 보인다. – wtaniguchi
그리고 네드의 답변을 올리 겠어. 그는 좋은 지적이있다. – wtaniguchi
전환 한 적이없는 사용자는 특정 비율의 사람들이 전환되어 MD5 해시를 제거하기에 충분한 시간이 지난 후에 고려할 것입니다. 이 기간 동안 로그온하지 않은 사용자는 다시 로그인 할 때 비밀번호를 재설정해야합니다. 그것이 수용 가능한지 여부는 비즈니스 결정입니다. –