django 자동 암호화

1241 단어 암호화하다django
모두가 알다시피 데이터베이스 사용자의 암호는 명문일 수 없기 때문에 암호화해야 한다.django는 자체적으로 암호화, 복호화 기능을 가지고 있다.
from django.contrib.auth.hashers import make_password, check_password

소스를 볼 수 있습니다.
def make_password(password, salt=None, hasher='default'):
    """
    Turn a plain-text password into a hash for database storage
    Same as encode() but generates a new random salt.  If
    password is None or blank then UNUSABLE_PASSWORD will be
    returned which disallows logins.
    """
    if not password:
        return UNUSABLE_PASSWORD
    hasher = get_hasher(hasher)
    password = smart_str(password)
    if not salt:
        salt = hasher.salt()
    salt = smart_str(salt)
passwd = make_password(text, None, 'pbkdf2_sha256') #text:       

주의: 이passwd는 수시로 변합니다. 체크password에서 테스트를 진행합니다.
check_password(text, passwd)   #  true / false

암호화 유형은 다음과 같습니다.
    pbkdf2_sha256    pbkdf2_sha1    bcrypt_sha256    bcrypt      sha1    unsalted_md5    crypt
Django 1.5 이전에 Django가 사용자 비밀번호에 대한 암호화 방식은 SHA1이었지만 Django 1.5 이후 비밀번호의 암호화 방식은 기본적으로 PBKDF2 알고리즘과 SHA256 해시 값으로 바뀌었다.bcrypt,crypt는 라이브러리를 따로 설치해야 합니다.

좋은 웹페이지 즐겨찾기