Linux ams-business-8.hostwindsdns.com 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64
LiteSpeed
Server IP : 192.236.177.161 & Your IP : 216.73.216.50
Domains :
Cant Read [ /etc/named.conf ]
User : ajzdfbpz
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
lib /
python3.6 /
site-packages /
passlib /
handlers /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2024-02-13 01:26
__init__.py
86
B
-rw-r--r--
2013-09-13 17:41
argon2.py
38.02
KB
-rw-r--r--
2019-11-19 19:41
bcrypt.py
42.13
KB
-rw-r--r--
2019-11-22 21:48
cisco.py
15.9
KB
-rw-r--r--
2019-11-12 18:47
des_crypt.py
21.74
KB
-rw-r--r--
2019-11-12 18:47
digests.py
5.32
KB
-rw-r--r--
2016-11-23 03:20
django.py
19.71
KB
-rw-r--r--
2019-11-12 18:47
fshp.py
7.62
KB
-rw-r--r--
2019-11-12 18:47
ldap_digests.py
9.87
KB
-rw-r--r--
2019-11-12 18:47
md5_crypt.py
13.37
KB
-rw-r--r--
2019-11-12 18:47
misc.py
9.87
KB
-rw-r--r--
2019-11-12 18:47
mssql.py
8.28
KB
-rw-r--r--
2019-11-12 18:47
mysql.py
4.68
KB
-rw-r--r--
2019-11-12 18:47
oracle.py
6.53
KB
-rw-r--r--
2019-11-12 18:47
pbkdf2.py
18.56
KB
-rw-r--r--
2019-11-12 18:47
phpass.py
4.67
KB
-rw-r--r--
2019-11-12 18:47
postgres.py
2.22
KB
-rw-r--r--
2019-11-12 18:47
roundup.py
1.15
KB
-rw-r--r--
2019-11-12 18:47
scram.py
22.01
KB
-rw-r--r--
2019-11-12 18:47
scrypt.py
13.81
KB
-rw-r--r--
2019-11-12 18:47
sha1_crypt.py
5.69
KB
-rw-r--r--
2019-11-12 18:47
sha2_crypt.py
20.67
KB
-rw-r--r--
2019-11-12 18:47
sun_md5_crypt.py
13.61
KB
-rw-r--r--
2019-11-12 18:47
windows.py
12.09
KB
-rw-r--r--
2019-11-12 18:47
Save
Rename
"""passlib.handlers.digests - plain hash digests """ #============================================================================= # imports #============================================================================= # core import hashlib import logging; log = logging.getLogger(__name__) # site # pkg from passlib.utils import to_native_str, to_bytes, render_bytes, consteq from passlib.utils.compat import unicode, str_to_uascii import passlib.utils.handlers as uh from passlib.crypto.digest import lookup_hash # local __all__ = [ "create_hex_hash", "hex_md4", "hex_md5", "hex_sha1", "hex_sha256", "hex_sha512", ] #============================================================================= # helpers for hexadecimal hashes #============================================================================= class HexDigestHash(uh.StaticHandler): """this provides a template for supporting passwords stored as plain hexadecimal hashes""" #=================================================================== # class attrs #=================================================================== _hash_func = None # hash function to use - filled in by create_hex_hash() checksum_size = None # filled in by create_hex_hash() checksum_chars = uh.HEX_CHARS #=================================================================== # methods #=================================================================== @classmethod def _norm_hash(cls, hash): return hash.lower() def _calc_checksum(self, secret): if isinstance(secret, unicode): secret = secret.encode("utf-8") return str_to_uascii(self._hash_func(secret).hexdigest()) #=================================================================== # eoc #=================================================================== def create_hex_hash(digest, module=__name__): # NOTE: could set digest_name=hash.name for cpython, but not for some other platforms. info = lookup_hash(digest) name = "hex_" + info.name return type(name, (HexDigestHash,), dict( name=name, __module__=module, # so ABCMeta won't clobber it _hash_func=staticmethod(info.const), # sometimes it's a function, sometimes not. so wrap it. checksum_size=info.digest_size*2, __doc__="""This class implements a plain hexadecimal %s hash, and follows the :ref:`password-hash-api`. It supports no optional or contextual keywords. """ % (info.name,) )) #============================================================================= # predefined handlers #============================================================================= hex_md4 = create_hex_hash("md4") hex_md5 = create_hex_hash("md5") hex_md5.django_name = "unsalted_md5" hex_sha1 = create_hex_hash("sha1") hex_sha256 = create_hex_hash("sha256") hex_sha512 = create_hex_hash("sha512") #============================================================================= # htdigest #============================================================================= class htdigest(uh.MinimalHandler): """htdigest hash function. .. todo:: document this hash """ name = "htdigest" setting_kwds = () context_kwds = ("user", "realm", "encoding") default_encoding = "utf-8" @classmethod def hash(cls, secret, user, realm, encoding=None): # NOTE: this was deliberately written so that raw bytes are passed through # unchanged, the encoding kwd is only used to handle unicode values. if not encoding: encoding = cls.default_encoding uh.validate_secret(secret) if isinstance(secret, unicode): secret = secret.encode(encoding) user = to_bytes(user, encoding, "user") realm = to_bytes(realm, encoding, "realm") data = render_bytes("%s:%s:%s", user, realm, secret) return hashlib.md5(data).hexdigest() @classmethod def _norm_hash(cls, hash): """normalize hash to native string, and validate it""" hash = to_native_str(hash, param="hash") if len(hash) != 32: raise uh.exc.MalformedHashError(cls, "wrong size") for char in hash: if char not in uh.LC_HEX_CHARS: raise uh.exc.MalformedHashError(cls, "invalid chars in hash") return hash @classmethod def verify(cls, secret, hash, user, realm, encoding="utf-8"): hash = cls._norm_hash(hash) other = cls.hash(secret, user, realm, encoding) return consteq(hash, other) @classmethod def identify(cls, hash): try: cls._norm_hash(hash) except ValueError: return False return True @uh.deprecated_method(deprecated="1.7", removed="2.0") @classmethod def genconfig(cls): return cls.hash("", "", "") @uh.deprecated_method(deprecated="1.7", removed="2.0") @classmethod def genhash(cls, secret, config, user, realm, encoding=None): # NOTE: 'config' is ignored, as this hash has no salting / other configuration. # just have to make sure it's valid. cls._norm_hash(config) return cls.hash(secret, user, realm, encoding) #============================================================================= # eof #=============================================================================