__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
"""passlib.handlers.postgres_md5 - MD5-based algorithm used by Postgres for pg_shadow table"""
#=============================================================================
# imports
#=============================================================================
# core
from hashlib import md5
import logging; log = logging.getLogger(__name__)
# site
# pkg
from passlib.utils import to_bytes
from passlib.utils.compat import str_to_uascii, unicode, u
import passlib.utils.handlers as uh
# local
__all__ = [
"postgres_md5",
]
#=============================================================================
# handler
#=============================================================================
class postgres_md5(uh.HasUserContext, uh.StaticHandler):
"""This class implements the Postgres MD5 Password hash, and follows the :ref:`password-hash-api`.
It does a single round of hashing, and relies on the username as the salt.
The :meth:`~passlib.ifc.PasswordHash.hash`, :meth:`~passlib.ifc.PasswordHash.genhash`, and :meth:`~passlib.ifc.PasswordHash.verify` methods all require the
following additional contextual keywords:
:type user: str
:param user: name of postgres user account this password is associated with.
"""
#===================================================================
# algorithm information
#===================================================================
name = "postgres_md5"
_hash_prefix = u("md5")
checksum_chars = uh.HEX_CHARS
checksum_size = 32
#===================================================================
# primary interface
#===================================================================
def _calc_checksum(self, secret):
if isinstance(secret, unicode):
secret = secret.encode("utf-8")
user = to_bytes(self.user, "utf-8", param="user")
return str_to_uascii(md5(secret + user).hexdigest())
#===================================================================
# eoc
#===================================================================
#=============================================================================
# eof
#=============================================================================
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 86 B | 0644 |
|
| argon2.py | File | 38.06 KB | 0644 |
|
| bcrypt.py | File | 52.35 KB | 0644 |
|
| cisco.py | File | 15.9 KB | 0644 |
|
| des_crypt.py | File | 21.84 KB | 0644 |
|
| digests.py | File | 6.18 KB | 0644 |
|
| django.py | File | 19.71 KB | 0644 |
|
| fshp.py | File | 7.62 KB | 0644 |
|
| ldap_digests.py | File | 12.74 KB | 0644 |
|
| md5_crypt.py | File | 13.42 KB | 0644 |
|
| misc.py | File | 9.87 KB | 0644 |
|
| mssql.py | File | 8.28 KB | 0644 |
|
| mysql.py | File | 4.68 KB | 0644 |
|
| oracle.py | File | 6.53 KB | 0644 |
|
| pbkdf2.py | File | 18.56 KB | 0644 |
|
| phpass.py | File | 4.67 KB | 0644 |
|
| postgres.py | File | 2.22 KB | 0644 |
|
| roundup.py | File | 1.15 KB | 0644 |
|
| scram.py | File | 22.01 KB | 0644 |
|
| scrypt.py | File | 13.81 KB | 0644 |
|
| sha1_crypt.py | File | 5.74 KB | 0644 |
|
| sha2_crypt.py | File | 21.29 KB | 0644 |
|
| sun_md5_crypt.py | File | 13.61 KB | 0644 |
|
| windows.py | File | 12.09 KB | 0644 |
|