Index: django/contrib/auth/models.py
===================================================================
--- django/contrib/auth/models.py       (revision 8336)
+++ django/contrib/auth/models.py       (working copy)
@@ -8,6 +8,7 @@
 from django.utils.translation import ugettext_lazy as _
 import datetime
 import urllib
+from django.utils.hashcompat import md5_constructor, sha_constructor
 
 UNUSABLE_PASSWORD = '!' # This will never be a valid hash
 
@@ -28,22 +29,11 @@
         except ImportError:
             raise ValueError('"crypt" password algorithm not supported in this environment')
         return crypt.crypt(raw_password, salt)
-    # The rest of the supported algorithms are supported by hashlib, but
-    # hashlib is only available in Python 2.5.
-    try:
-        import hashlib
-    except ImportError:
-        if algorithm == 'md5':
-            import md5
-            return md5.new(salt + raw_password).hexdigest()
-        elif algorithm == 'sha1':
-            import sha
-            return sha.new(salt + raw_password).hexdigest()
-    else:
-        if algorithm == 'md5':
-            return hashlib.md5(salt + raw_password).hexdigest()
-        elif algorithm == 'sha1':
-            return hashlib.sha1(salt + raw_password).hexdigest()
+    
+    if algorithm == 'md5':
+        return md5_constructor(salt + raw_password).hexdigest()
+    elif algorithm == 'sha1':
+        return sha_constructor(salt + raw_password).hexdigest()
     raise ValueError("Got unknown password algorithm type in password.")
 
 def check_password(raw_password, enc_password):
