Linux ams-business-5.hostwindsdns.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
LiteSpeed
Server IP : 23.254.231.17 & Your IP : 216.73.217.173
Domains :
Cant Read [ /etc/named.conf ]
User : uxvsuhne
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-10 01:12
__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.phpass - PHPass Portable Crypt phppass located - http://www.openwall.com/phpass/ algorithm described - http://www.openwall.com/articles/PHP-Users-Passwords phpass context - blowfish, bsdi_crypt, phpass """ #============================================================================= # imports #============================================================================= # core from hashlib import md5 import logging; log = logging.getLogger(__name__) # site # pkg from passlib.utils.binary import h64 from passlib.utils.compat import u, uascii_to_str, unicode import passlib.utils.handlers as uh # local __all__ = [ "phpass", ] #============================================================================= # phpass #============================================================================= class phpass(uh.HasManyIdents, uh.HasRounds, uh.HasSalt, uh.GenericHandler): """This class implements the PHPass Portable Hash, and follows the :ref:`password-hash-api`. It supports a fixed-length salt, and a variable number of rounds. The :meth:`~passlib.ifc.PasswordHash.using` method accepts the following optional keywords: :type salt: str :param salt: Optional salt string. If not specified, one will be autogenerated (this is recommended). If specified, it must be 8 characters, drawn from the regexp range ``[./0-9A-Za-z]``. :type rounds: int :param rounds: Optional number of rounds to use. Defaults to 19, must be between 7 and 30, inclusive. This value is logarithmic, the actual number of iterations used will be :samp:`2**{rounds}`. :type ident: str :param ident: phpBB3 uses ``H`` instead of ``P`` for its identifier, this may be set to ``H`` in order to generate phpBB3 compatible hashes. it defaults to ``P``. :type relaxed: bool :param relaxed: By default, providing an invalid value for one of the other keywords will result in a :exc:`ValueError`. If ``relaxed=True``, and the error can be corrected, a :exc:`~passlib.exc.PasslibHashWarning` will be issued instead. Correctable errors include ``rounds`` that are too small or too large, and ``salt`` strings that are too long. .. versionadded:: 1.6 """ #=================================================================== # class attrs #=================================================================== #--GenericHandler-- name = "phpass" setting_kwds = ("salt", "rounds", "ident") checksum_chars = uh.HASH64_CHARS #--HasSalt-- min_salt_size = max_salt_size = 8 salt_chars = uh.HASH64_CHARS #--HasRounds-- default_rounds = 19 min_rounds = 7 max_rounds = 30 rounds_cost = "log2" #--HasManyIdents-- default_ident = u("$P$") ident_values = (u("$P$"), u("$H$")) ident_aliases = {u("P"):u("$P$"), u("H"):u("$H$")} #=================================================================== # formatting #=================================================================== #$P$9IQRaTwmfeRo7ud9Fh4E2PdI0S3r.L0 # $P$ # 9 # IQRaTwmf # eRo7ud9Fh4E2PdI0S3r.L0 @classmethod def from_string(cls, hash): ident, data = cls._parse_ident(hash) rounds, salt, chk = data[0], data[1:9], data[9:] return cls( ident=ident, rounds=h64.decode_int6(rounds.encode("ascii")), salt=salt, checksum=chk or None, ) def to_string(self): hash = u("%s%s%s%s") % (self.ident, h64.encode_int6(self.rounds).decode("ascii"), self.salt, self.checksum or u('')) return uascii_to_str(hash) #=================================================================== # backend #=================================================================== def _calc_checksum(self, secret): # FIXME: can't find definitive policy on how phpass handles non-ascii. if isinstance(secret, unicode): secret = secret.encode("utf-8") real_rounds = 1<<self.rounds result = md5(self.salt.encode("ascii") + secret).digest() r = 0 while r < real_rounds: result = md5(result + secret).digest() r += 1 return h64.encode_bytes(result).decode("ascii") #=================================================================== # eoc #=================================================================== #============================================================================= # eof #=============================================================================