2012-11-29 4 views
0

양식을 제출하기 전에 모든 암호 필드에 암호 해시를 적용하려고합니다. 지금까지 내가 무엇을 제출을 가로 채고 암호를 해시 것이 ...양식 제출시 암호 필드 값을 가로 채고 변경하는 방법은 무엇입니까?

$("#loginform").submit(function(e) { 
    e.preventDefault(); 
    $('input[type=password]').each(function(){ 
     console.log($.sha256($(this).val())) //Hash password 
     //Set password back 
    }); 
    return true; 
}); 

...,하지만 난 정상적인 방법을 사용하여 입력 상자에 일반 텍스트 암호를 대체 할 수 없습니다.

숨겨진 입력 등으로이 작업을 수행하는 방법을 알고 있지만이 사이트는 이미 상당히 견고한 로그인 구조가 적용된 사이트에 적용되므로 최소 HTML 수정을 원합니다.

감사합니다 :) 클라이언트 측 해싱의 요점은 당신이 소금과 임의의 '도전'사용 확인, 안전하지 않은 연결 (HTTP)를 통해 가고 암호를 확보하는 경우

+1

로그인 호출을 AJAX-wise로 설정하십시오. – moonwave99

+0

클라이언트 쪽 해시가 필요한 약 10 개의 폼이 있기 때문에이 방법으로이 작업을 수행하고 싶었습니다. 모두 다른 PHP 파일을 호출합니다. 나는 좀 더 보편적 인 것을 만들려고 노력하고있다. –

+1

왜 서버에서 해싱을하지 않습니까? 해쉬 된 패스워드를 보내는 것은 아무런 보안이 없다. 다른 사용자가 가로채는 경우 동일한 해시 된 암호를 직접 보낼 수 있습니다. – Barmar

답변

1

.

지금처럼 :

응답 = SHA256 (도전 + sha265 (소금 + 비밀번호))

서버 도전, 소금, sha265에 대한 답 (소금 + 비밀번호)를 알고, 그 다음 유효성을 검사 할 수 있습니다 응답.

레인보우 공격을 피하려면 소금 + 암호가 필요하고 재연 공격을 방지하려면 응답/시도가 필요합니다.

더 나은 방법은 SSH를 사용하는 것입니다.)

관련 문제