pythondjango

How to verify passwords created by Django(make_password) without Django


I have used Django and handled password with make_password and check_password.

however, I get to change a framework to fastapi.

With fastapi, I need to verify passwords that are created by Django because I should use the same database with the data.

How can I handle the passwords in the way that is compatible with Django?

Password's format stored in database is like that 'pbkdf2_sha256$100000$Dl6Atsc1xX0A$0QFvZLpKdcvcmCNixVCdEA5gJ67yef/gkgaCKTYzoo4='


Solution

  • I have found passlib support Django compatible way.

    from django.contrib.auth.hashers import make_password
    from passlib.handlers.django import django_pbkdf2_sha256
    
    password = 'testpassword123'
    django_hash = make_password(password)   
    is_verified = django_pbkdf2_sha256.verify(password, django_hash)
    
    if is_verified:
      print('Correct!!')