2016-09-18 1 views
0

에 의해 암호화 할 해시 해시 암호 sha1(password . salt)와 사용자 테이블을 포함하고 나는 (나의 새로운 레일 응용 프로그램에 안전하게을이 데이터를 마이그레이션해야 이미 bcrypt-ruby gem를 사용하여 암호를 암호화)이 문제 뿐만 솔루션의 다음과 같은 종류의 피와 함께 최고의 솔루션을 찾고있는 :마이그레이션 SHA1 소금은 내가 늙은 응용 프로그램 (.NET C#을 기반으로)가 Bcrypt

  1. 리셋 현재의 모든 사용자의 암호를하고 을 진행하도록 강제 ''절차를 비밀 번호를 잊어
  2. 모든 종류의 일반 텍스트 비밀번호를 사용하십시오 (예 : 사용자가 처음으로 새 애플리케이션에 로그인하는 동안 일시적으로 사용).
  3. Rails 앱에서 SHA1과 동일한 암호화 절차를 사용하십시오 (대신 BCrypt 사용해야 함).

내가 읽은 가장 좋은 방법은 사용자가 기존 암호를 사용하여 새 응용 프로그램에 로그인하고 암호를 암호화하는 방법을 모르는 것입니다. BCrypt에 의해) 그리고 Rails 응용 프로그램에서 새로 등록 된 사용자의 암호 암호화 절차를 따르십시오.

이 문제를 해결하기 위해 제안 된 모든 솔루션에 감사드립니다.

+3

당신은 이미 무엇을 해야할지 알고 있습니까? 너는 무엇에 관해서 묻고 있니? – PeeHaa

답변

0

올바른 길을 가고 있습니다. 당신은 ...

  • 레일 응용 프로그램의 사용자 테이블에 sha1_password 필드를 추가하십시오.
  • 인증 수정 ...
    • bcrypt 암호가있는 경우 확인하십시오.
    • 새 bcrypt 암호 필드가 비어 있으면 sha1_password를 확인하십시오.
    • 일치하는 항목이 있으면 해당 항목이 이전 중이라는 사실을 알고 있고 일반 텍스트 암호도 가지고 있습니다.
    • 암호 암호 필드를 설정하십시오.
  • 끝.

이렇게하면 사용자가 시간이 지나면 마이그레이션 할 수 있습니다. 그런 다음 어떤 시점에서 나머지를 '비밀번호 재설정'경로로 이동하거나 이메일로 괴롭히기 시작하여 결국 완전히 bcrypt하게됩니다.

+3

가장 중요한 부분을 잊어 버렸습니다. 변환 할 때 sha1 해시를 누크하십시오. 그렇지 않으면이 전체가 쓸모가 없습니다. – PeeHaa

+0

@PeeHaa 첫 번째 단계는 "존재할 경우 bcrypt 확인"을 수행하는 것이므로 꼭 필요한 것은 아닙니다. 비어있는 경우에만 sha1로 되돌아갑니다. –

+2

매우 엄격하게 필요합니다. 핵무기를하지 않으면 예방하기 위해 노력하고있는 문제가 있기 때문에이 모든 노력은 쓸모가 없습니다. 해시를 일반 텍스트로 "되돌릴"수있는 능력. – PeeHaa

관련 문제