2011-01-30 3 views
0

vBulliten과 Django의 사용자 데이터베이스를 통합하려고합니다. 나는 vB가 md5 알고리즘을 사용하여 암호를 해시하는 것을 알고 있습니다. 각 vB 사용자에 대한 소금 데이터와 암호가 있으며 장고로 계정을 가져 오는 방법을 알고 싶습니다.장고의 암호 해시

장고 사용자의 암호를 다음과 같이 변경했습니다.

MD5 $의 vb's_salt의 $의 vb's_password

이 그냥 말하는 메시지와 함께, 장고의 로그에서 양식을 다시 던졌습니다

어떤 아이디어 "사용자 이름과 암호가 일치하지 않습니다"?

+0

당신이 (알려진 암호에 대한 vBulletin에 항목의 예를 제공 할 수 있습니다 예를 들어, "비밀번호": 그럼 우리가 더 쉽게 도움을, 그리고 아마도 몇 가지 가지고 올 수 이를 허용하는 사용자 정의 코드. – nealmcb

답변

1

명백한 첫 번째 질문 : 사용자의 비밀번호를 어떻게 변경 했습니까? algo $ salt $ 암호 문자열을 데이터베이스에 직접 넣어야합니다.

아마도 vBulleting은 암호와 소금으로부터 암호 해시를 만드는 다른 방법을 사용합니다. 이 경우 사용자 비밀번호를 다르게 확인한 후 Django 형식으로 저장하는 대체 로그인을 구현해야 할 수 있습니다.

+0

stefanw, 입력 해 주셔서 감사합니다. 사이트의 관리 섹션을 통해 데이터베이스에 비밀번호를 추가했습니다. algo $ salt $ password 형식으로 암호를 표시하는 암호 상자를 알고 있습니까? 이것은 작동 여부를 확인하기 위해 손으로 일회적으로 수행되었습니다. 결국 대신이 작업을 수행 할 파이썬 스크립트를 작성하려고합니다. –

1

db에서 수동으로 암호를 업데이트하거나 Python을 작성할 수 있습니다.

hashtype$salt$hash

달러 - 기호 문자로 구분 hashtype, 소금, 해시입니다 :

사용자 개체의 암호 속성은이 형식의 문자열입니다.

Hashtype은 sha1 (기본값), md5 또는 crypt - 암호의 단방향 해시 수행에 사용되는 알고리즘입니다. 소금은 원시 암호를 해싱하는 데 사용되는 임의의 문자열입니다. crypt 메소드는 표준 Python 암호화 모듈이있는 플랫폼에서만 지원됩니다. 예를 들어

:

sha1$a1976$a36cc8cbf81742a8fb52e221aaeab48ed7f58ab4

set_password() 및은 check_password() 함수를 설정 처리와 배후 이러한 값 확인.

(참조 : http://docs.djangoproject.com/en/dev/topics/auth/#passwords)

+0

위의 stefanw의 답장에 위의 코멘트를 주면, 테스트 사용자의 비밀번호를 변경하기 위해 django의 사용자 객체 메소드를 사용하지 않았기 때문에 실패라고 제안 하시겠습니까? 입력 해 주셔서 다시 한 번 감사드립니다. –

+0

단일 사용자에 대해 수동으로 데이터베이스를 업데이트하고 그 후에 만 ​​로그인 할 수 있는지 확인하는 것이 좋습니다. 관리자 인터페이스에 대해 확실하지 않습니다. – Ali

1

vBulletin에가되지 않는 염 및 패스워드를 장고와 같은 방식으로 해싱.

vBulletin에이처럼 수행합니다

$hash_stored_in_database = md5(md5($plaintext_password) . $salt); 
관련 문제