@@ -101,6 +101,9 @@ def mysql_passwd(password, uppercase=True):
101101 '*00E247AC5F9AF26AE0194B41E1E769DEE1429A29'
102102 """
103103
104+ if isinstance (password , six .text_type ):
105+ password = password .encode (UNICODE_ENCODING )
106+
104107 retVal = "*%s" % sha1 (sha1 (password ).digest ()).hexdigest ()
105108
106109 return retVal .upper () if uppercase else retVal .lower ()
@@ -139,11 +142,11 @@ def postgres_passwd(password, username, uppercase=False):
139142 'md599e5ea7a6f7c3269995cba3927fd0093'
140143 """
141144
142- if isinstance (username , unicode ):
143- username = unicode .encode (username , UNICODE_ENCODING )
145+ if isinstance (username , six . text_type ):
146+ username = username .encode (UNICODE_ENCODING )
144147
145- if isinstance (password , unicode ):
146- password = unicode .encode (password , UNICODE_ENCODING )
148+ if isinstance (password , six . text_type ):
149+ password = password .encode (UNICODE_ENCODING )
147150
148151 retVal = "md5%s" % md5 (password + username ).hexdigest ()
149152
@@ -228,11 +231,11 @@ def oracle_old_passwd(password, username, uppercase=True): # prior to version '
228231
229232 IV , pad = "\0 " * 8 , "\0 "
230233
231- if isinstance (username , unicode ):
232- username = unicode .encode (username , UNICODE_ENCODING )
234+ if isinstance (username , six . text_type ):
235+ username = username .encode (UNICODE_ENCODING )
233236
234- if isinstance (password , unicode ):
235- password = unicode .encode (password , UNICODE_ENCODING )
237+ if isinstance (password , six . text_type ):
238+ password = password .encode (UNICODE_ENCODING )
236239
237240 unistr = "" .join ("\0 %s" % c for c in (username + password ).upper ())
238241
@@ -251,6 +254,9 @@ def md5_generic_passwd(password, uppercase=False):
251254 '179ad45c6ce2cb97cf1029e212046e81'
252255 """
253256
257+ if isinstance (password , six .text_type ):
258+ password = password .encode (UNICODE_ENCODING )
259+
254260 retVal = md5 (password ).hexdigest ()
255261
256262 return retVal .upper () if uppercase else retVal .lower ()
@@ -261,6 +267,9 @@ def sha1_generic_passwd(password, uppercase=False):
261267 '206c80413b9a96c1312cc346b7d2517b84463edd'
262268 """
263269
270+ if isinstance (password , six .text_type ):
271+ password = password .encode (UNICODE_ENCODING )
272+
264273 retVal = sha1 (password ).hexdigest ()
265274
266275 return retVal .upper () if uppercase else retVal .lower ()
@@ -271,6 +280,9 @@ def apache_sha1_passwd(password, **kwargs):
271280 '{SHA}IGyAQTualsExLMNGt9JRe4RGPt0='
272281 """
273282
283+ if isinstance (password , six .text_type ):
284+ password = password .encode (UNICODE_ENCODING )
285+
274286 return "{SHA}%s" % base64 .b64encode (sha1 (password ).digest ())
275287
276288def ssha_passwd (password , salt , ** kwargs ):
@@ -279,6 +291,12 @@ def ssha_passwd(password, salt, **kwargs):
279291 '{SSHA}mU1HPTvnmoXOhE4ROHP6sWfbfoRzYWx0'
280292 """
281293
294+ if isinstance (password , six .text_type ):
295+ password = password .encode (UNICODE_ENCODING )
296+
297+ if isinstance (salt , six .text_type ):
298+ salt = salt .encode (UNICODE_ENCODING )
299+
282300 return "{SSHA}%s" % base64 .b64encode (sha1 (password + salt ).digest () + salt )
283301
284302def ssha256_passwd (password , salt , ** kwargs ):
@@ -287,6 +305,12 @@ def ssha256_passwd(password, salt, **kwargs):
287305 '{SSHA256}hhubsLrO/Aje9F/kJrgv5ZLE40UmTrVWvI7Dt6InP99zYWx0'
288306 """
289307
308+ if isinstance (password , six .text_type ):
309+ password = password .encode (UNICODE_ENCODING )
310+
311+ if isinstance (salt , six .text_type ):
312+ salt = salt .encode (UNICODE_ENCODING )
313+
290314 return "{SSHA256}%s" % base64 .b64encode (sha256 (password + salt ).digest () + salt )
291315
292316def ssha512_passwd (password , salt , ** kwargs ):
@@ -295,6 +319,12 @@ def ssha512_passwd(password, salt, **kwargs):
295319 '{SSHA512}mCUSLfPMhXCQOJl9WHW/QMn9v9sjq7Ht/Wk7iVau8vLOfh+PeynkGMikqIE8sStFd0khdfcCD8xZmC6UyjTxsHNhbHQ='
296320 """
297321
322+ if isinstance (password , six .text_type ):
323+ password = password .encode (UNICODE_ENCODING )
324+
325+ if isinstance (salt , six .text_type ):
326+ salt = salt .encode (UNICODE_ENCODING )
327+
298328 return "{SSHA512}%s" % base64 .b64encode (sha512 (password + salt ).digest () + salt )
299329
300330def sha224_generic_passwd (password , uppercase = False ):
@@ -303,6 +333,9 @@ def sha224_generic_passwd(password, uppercase=False):
303333 '648db6019764b598f75ab6b7616d2e82563a00eb1531680e19ac4c6f'
304334 """
305335
336+ if isinstance (password , six .text_type ):
337+ password = password .encode (UNICODE_ENCODING )
338+
306339 retVal = sha224 (password ).hexdigest ()
307340
308341 return retVal .upper () if uppercase else retVal .lower ()
@@ -313,6 +346,9 @@ def sha256_generic_passwd(password, uppercase=False):
313346 '13d249f2cb4127b40cfa757866850278793f814ded3c587fe5889e889a7a9f6c'
314347 """
315348
349+ if isinstance (password , six .text_type ):
350+ password = password .encode (UNICODE_ENCODING )
351+
316352 retVal = sha256 (password ).hexdigest ()
317353
318354 return retVal .upper () if uppercase else retVal .lower ()
@@ -323,6 +359,9 @@ def sha384_generic_passwd(password, uppercase=False):
323359 '6823546e56adf46849343be991d4b1be9b432e42ed1b4bb90635a0e4b930e49b9ca007bc3e04bf0a4e0df6f1f82769bf'
324360 """
325361
362+ if isinstance (password , six .text_type ):
363+ password = password .encode (UNICODE_ENCODING )
364+
326365 retVal = sha384 (password ).hexdigest ()
327366
328367 return retVal .upper () if uppercase else retVal .lower ()
@@ -333,6 +372,9 @@ def sha512_generic_passwd(password, uppercase=False):
333372 '78ddc8555bb1677ff5af75ba5fc02cb30bb592b0610277ae15055e189b77fe3fda496e5027a3d99ec85d54941adee1cc174b50438fdc21d82d0a79f85b58cf44'
334373 """
335374
375+ if isinstance (password , six .text_type ):
376+ password = password .encode (UNICODE_ENCODING )
377+
336378 retVal = sha512 (password ).hexdigest ()
337379
338380 return retVal .upper () if uppercase else retVal .lower ()
@@ -349,6 +391,12 @@ def crypt_generic_passwd(password, salt, **kwargs):
349391 'rl.3StKT.4T8M'
350392 """
351393
394+ if isinstance (password , six .text_type ):
395+ password = password .encode (UNICODE_ENCODING )
396+
397+ if isinstance (salt , six .text_type ):
398+ salt = salt .encode (UNICODE_ENCODING )
399+
352400 return crypt (password , salt )
353401
354402def unix_md5_passwd (password , salt , magic = "$1$" , ** kwargs ):
@@ -357,7 +405,7 @@ def unix_md5_passwd(password, salt, magic="$1$", **kwargs):
357405 http://www.sabren.net/code/python/crypt/md5crypt.py
358406
359407 >>> unix_md5_passwd(password='testpass', salt='aD9ZLmkp')
360- '$1$aD9ZLmkp$DRM5a7rRZGyuuOPOjTEk61'
408+ u '$1$aD9ZLmkp$DRM5a7rRZGyuuOPOjTEk61'
361409 """
362410
363411 def _encode64 (value , count ):
@@ -370,13 +418,13 @@ def _encode64(value, count):
370418
371419 return output
372420
373- if isinstance (password , unicode ):
421+ if isinstance (password , six . text_type ):
374422 password = password .encode (UNICODE_ENCODING )
375423
376- if isinstance (magic , unicode ):
424+ if isinstance (magic , six . text_type ):
377425 magic = magic .encode (UNICODE_ENCODING )
378426
379- if isinstance (salt , unicode ):
427+ if isinstance (salt , six . text_type ):
380428 salt = salt .encode (UNICODE_ENCODING )
381429
382430 salt = salt [:8 ]
@@ -427,7 +475,7 @@ def _encode64(value, count):
427475 hash_ = hash_ + _encode64 ((int (ord (final [4 ])) << 16 ) | (int (ord (final [10 ])) << 8 ) | (int (ord (final [5 ]))), 4 )
428476 hash_ = hash_ + _encode64 ((int (ord (final [11 ]))), 2 )
429477
430- return "%s%s$%s" % (magic , salt , hash_ )
478+ return "%s%s$%s" % (magic , salt . decode ( UNICODE_ENCODING ) , hash_ . decode ( UNICODE_ENCODING ) )
431479
432480def joomla_passwd (password , salt , ** kwargs ):
433481 """
@@ -437,6 +485,12 @@ def joomla_passwd(password, salt, **kwargs):
437485 'e3d5794da74e917637332e0d21b76328:6GGlnaquVXI80b3HRmSyE3K1wEFFaBIf'
438486 """
439487
488+ if isinstance (password , six .text_type ):
489+ password = password .encode (UNICODE_ENCODING )
490+
491+ if isinstance (salt , six .text_type ):
492+ salt = salt .encode (UNICODE_ENCODING )
493+
440494 return "%s:%s" % (md5 ("%s%s" % (password , salt )).hexdigest (), salt )
441495
442496def django_md5_passwd (password , salt , ** kwargs ):
@@ -447,6 +501,12 @@ def django_md5_passwd(password, salt, **kwargs):
447501 'md5$salt$972141bcbcb6a0acc96e92309175b3c5'
448502 """
449503
504+ if isinstance (password , six .text_type ):
505+ password = password .encode (UNICODE_ENCODING )
506+
507+ if isinstance (salt , six .text_type ):
508+ salt = salt .encode (UNICODE_ENCODING )
509+
450510 return "md5$%s$%s" % (salt , md5 ("%s%s" % (salt , password )).hexdigest ())
451511
452512def django_sha1_passwd (password , salt , ** kwargs ):
@@ -457,6 +517,12 @@ def django_sha1_passwd(password, salt, **kwargs):
457517 'sha1$salt$6ce0e522aba69d8baa873f01420fccd0250fc5b2'
458518 """
459519
520+ if isinstance (password , six .text_type ):
521+ password = password .encode (UNICODE_ENCODING )
522+
523+ if isinstance (salt , six .text_type ):
524+ salt = salt .encode (UNICODE_ENCODING )
525+
460526 return "sha1$%s$%s" % (salt , sha1 ("%s%s" % (salt , password )).hexdigest ())
461527
462528def vbulletin_passwd (password , salt , ** kwargs ):
@@ -467,6 +533,12 @@ def vbulletin_passwd(password, salt, **kwargs):
467533 '85c4d8ea77ebef2236fb7e9d24ba9482:salt'
468534 """
469535
536+ if isinstance (password , six .text_type ):
537+ password = password .encode (UNICODE_ENCODING )
538+
539+ if isinstance (salt , six .text_type ):
540+ salt = salt .encode (UNICODE_ENCODING )
541+
470542 return "%s:%s" % (md5 ("%s%s" % (md5 (password ).hexdigest (), salt )).hexdigest (), salt )
471543
472544def wordpress_passwd (password , salt , count , prefix , ** kwargs ):
@@ -510,7 +582,7 @@ def _encode64(input_, count):
510582
511583 return output
512584
513- if isinstance (password , unicode ):
585+ if isinstance (password , six . text_type ):
514586 password = password .encode (UNICODE_ENCODING )
515587
516588 cipher = md5 (salt )
0 commit comments