문제

JSF에서 새로운 사이트를 프로그래밍하고 있습니다. 현재 로그인을 프로그래밍합니다.
나는 몇 년 전에 MD5를 사용했지만 레인보우 테이블로 더 이상 안전하다고 생각합니다.
그렇다면 비밀번호를 데이터베이스에 어떻게 저장해야합니까?

다른 팁

가장 먼저하고 싶은 것은 공급 업체로부터 사전 구축 된 시스템을 찾는 것입니다. 당신은 너무 늦을 때까지 모르는 미묘한 방식으로 잘못되기 쉽기 때문에 생계를 위해 보안 코드를 작성하는 사람에게 가능한 한 많은 것을 추진하고 싶습니다. 이렇게하면 서비스 업데이트를 얻을 수 있으므로 더 이상 생각할 필요가 없습니다.

그 외에도 암호 당 소금을 생성하고 비밀번호를 사용하고 안전한 해싱 알고리즘을 사용해야합니다 (MD5는 반드시 보안이 아니라 속도를위한 것입니다). SHA1은 꽤 일반적이지만 늙어 가기 시작했습니다.

SHA512와 소금을 조정하는 것이 좋습니다. (모든 사람에게 임의의 값을 저장하고 암호와 그 가치를 함께 해시하십시오.)

PKCS#5를 찾아 보면 (또는 더 나은 것은 이미 수행 할 수있는 평판이 좋은 구현을 찾으면) 꽤 좋은 메커니즘을 찾을 수 있습니다.

기본적으로 숫자 (500), 비밀번호, 해시 알고리즘 및 소금 (비밀번호 끝에 랜덤 데이터를 추가하여 추측 할 수없는 임의의 데이터)을 선택합니다.

  1. 비밀번호를 가져 가서 소금을 소금하고 해시하십시오.
  2. 결과를 얻으십시오, 그 소금 (같은 소금).
  3. 2 단계 N 회 반복 (이 예에서 N은 500입니다).
  4. N 및 소금 자체와 함께 최종 해시, 소금에 절인 결과를 비밀번호 데이터베이스에 보관하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top