PATH: //proc/self/root/usr/lib64/python3.9
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 LICENSE.txt
↓
X
📄 __future__.py
↓
X
📄 __phello__.foo.py
↓
X
📁 __pycache__/
X
📄 _aix_support.py
↓
X
📄 _bootlocale.py
↓
X
📄 _bootsubprocess.py
↓
X
📄 _collections_abc.py
↓
X
📄 _compat_pickle.py
↓
X
📄 _compression.py
↓
X
📄 _markupbase.py
↓
X
📄 _osx_support.py
↓
X
📄 _py_abc.py
↓
X
📄 _pydecimal.py
↓
X
📄 _pyio.py
↓
X
📄 _sitebuiltins.py
↓
X
📄 _strptime.py
↓
X
📄 _sysconfigdata__linux_x86_64-linux-gnu.py
↓
X
📄 _threading_local.py
↓
X
📄 _weakrefset.py
↓
X
📄 abc.py
↓
X
📄 aifc.py
↓
X
📄 antigravity.py
↓
X
📄 argparse.py
↓
X
📄 ast.py
↓
X
📄 asynchat.py
↓
X
📁 asyncio/
X
📄 asyncore.py
↓
X
📄 base64.py
↓
X
📄 bdb.py
↓
X
📄 binhex.py
↓
X
📄 bisect.py
↓
X
📄 bz2.py
↓
X
📄 cProfile.py
↓
X
📄 calendar.py
↓
X
📄 cgi.py
↓
X
📄 cgitb.py
↓
X
📄 chunk.py
↓
X
📄 cmd.py
↓
X
📄 code.py
↓
X
📄 codecs.py
↓
X
📄 codeop.py
↓
X
📁 collections/
X
📄 colorsys.py
↓
X
📄 compileall.py
↓
X
📁 concurrent/
X
📁 config-3.9-x86_64-linux-gnu/
X
📄 configparser.py
↓
X
📄 contextlib.py
↓
X
📄 contextvars.py
↓
X
📄 copy.py
↓
X
📄 copyreg.py
↓
X
📄 crypt.py
↓
X
📄 csv.py
↓
X
📁 ctypes/
X
📁 curses/
X
📄 dataclasses.py
↓
X
📄 datetime.py
↓
X
📁 dbm/
X
📄 decimal.py
↓
X
📄 difflib.py
↓
X
📄 dis.py
↓
X
📁 distutils/
X
📄 doctest.py
↓
X
📁 email/
X
📁 encodings/
X
📁 ensurepip/
X
📄 enum.py
↓
X
📄 filecmp.py
↓
X
📄 fileinput.py
↓
X
📄 fnmatch.py
↓
X
📄 formatter.py
↓
X
📄 fractions.py
↓
X
📄 ftplib.py
↓
X
📄 functools.py
↓
X
📄 genericpath.py
↓
X
📄 getopt.py
↓
X
📄 getpass.py
↓
X
📄 gettext.py
↓
X
📄 glob.py
↓
X
📄 graphlib.py
↓
X
📄 gzip.py
↓
X
📄 hashlib.py
↓
X
📄 heapq.py
↓
X
📄 hmac.py
↓
X
📁 html/
X
📁 http/
X
📄 imaplib.py
↓
X
📄 imghdr.py
↓
X
📄 imp.py
↓
X
📁 importlib/
X
📄 inspect.py
↓
X
📄 io.py
↓
X
📄 ipaddress.py
↓
X
📁 json/
X
📄 keyword.py
↓
X
📁 lib-dynload/
X
📁 lib2to3/
X
📄 linecache.py
↓
X
📄 locale.py
↓
X
📁 logging/
X
📄 lzma.py
↓
X
📄 mailbox.py
↓
X
📄 mailcap.py
↓
X
📄 mimetypes.py
↓
X
📄 modulefinder.py
↓
X
📁 multiprocessing/
X
📄 netrc.py
↓
X
📄 nntplib.py
↓
X
📄 ntpath.py
↓
X
📄 nturl2path.py
↓
X
📄 numbers.py
↓
X
📄 opcode.py
↓
X
📄 operator.py
↓
X
📄 optparse.py
↓
X
📄 os.py
↓
X
📄 pathlib.py
↓
X
📄 pdb.py
↓
X
📄 pickle.py
↓
X
📄 pickletools.py
↓
X
📄 pipes.py
↓
X
📄 pkgutil.py
↓
X
📄 platform.py
↓
X
📄 plistlib.py
↓
X
📄 poplib.py
↓
X
📄 posixpath.py
↓
X
📄 pprint.py
↓
X
📄 profile.py
↓
X
📄 pstats.py
↓
X
📄 pty.py
↓
X
📄 py_compile.py
↓
X
📄 pyclbr.py
↓
X
📄 pydoc.py
↓
X
📁 pydoc_data/
X
📄 queue.py
↓
X
📄 quopri.py
↓
X
📄 random.py
↓
X
📄 re.py
↓
X
📄 reprlib.py
↓
X
📄 rlcompleter.py
↓
X
📄 runpy.py
↓
X
📄 sched.py
↓
X
📄 secrets.py
↓
X
📄 selectors.py
↓
X
📄 shelve.py
↓
X
📄 shlex.py
↓
X
📄 shutil.py
↓
X
📄 signal.py
↓
X
📁 site-packages/
X
📄 site.py
↓
X
📄 smtpd.py
↓
X
📄 smtplib.py
↓
X
📄 sndhdr.py
↓
X
📄 socket.py
↓
X
📄 socketserver.py
↓
X
📁 sqlite3/
X
📄 sre_compile.py
↓
X
📄 sre_constants.py
↓
X
📄 sre_parse.py
↓
X
📄 ssl.py
↓
X
📄 stat.py
↓
X
📄 statistics.py
↓
X
📄 string.py
↓
X
📄 stringprep.py
↓
X
📄 struct.py
↓
X
📄 subprocess.py
↓
X
📄 sunau.py
↓
X
📄 symbol.py
↓
X
📄 symtable.py
↓
X
📄 sysconfig.py
↓
X
📄 tabnanny.py
↓
X
📄 tarfile.py
↓
X
📄 telnetlib.py
↓
X
📄 tempfile.py
↓
X
📄 textwrap.py
↓
X
📄 this.py
↓
X
📄 threading.py
↓
X
📄 timeit.py
↓
X
📁 tkinter/
X
📄 token.py
↓
X
📄 tokenize.py
↓
X
📄 trace.py
↓
X
📄 traceback.py
↓
X
📄 tracemalloc.py
↓
X
📄 tty.py
↓
X
📄 turtle.py
↓
X
📁 turtledemo/
X
📄 types.py
↓
X
📄 typing.py
↓
X
📁 unittest/
X
📁 urllib/
X
📄 uu.py
↓
X
📄 uuid.py
↓
X
📁 venv/
X
📄 warnings.py
↓
X
📄 wave.py
↓
X
📄 weakref.py
↓
X
📄 webbrowser.py
↓
X
📁 wsgiref/
X
📄 xdrlib.py
↓
X
📁 xml/
X
📁 xmlrpc/
X
📄 zipapp.py
↓
X
📄 zipfile.py
↓
X
📄 zipimport.py
↓
X
📁 zoneinfo/
X
SAVING...
BERHASIL DIUBAH!
EDITING: crypt.py
"""Wrapper to the POSIX crypt library call and associated functionality.""" import sys as _sys try: import _crypt except ModuleNotFoundError: if _sys.platform == 'win32': raise ImportError("The crypt module is not supported on Windows") else: raise ImportError("The required _crypt module was not built as part of CPython") import errno import string as _string from random import SystemRandom as _SystemRandom from collections import namedtuple as _namedtuple _saltchars = _string.ascii_letters + _string.digits + './' _sr = _SystemRandom() class _Method(_namedtuple('_Method', 'name ident salt_chars total_size')): """Class representing a salt method per the Modular Crypt Format or the legacy 2-character crypt method.""" def __repr__(self): return '<crypt.METHOD_{}>'.format(self.name) def mksalt(method=None, *, rounds=None): """Generate a salt for the specified method. If not specified, the strongest available method will be used. """ if method is None: method = methods[0] if rounds is not None and not isinstance(rounds, int): raise TypeError(f'{rounds.__class__.__name__} object cannot be ' f'interpreted as an integer') if not method.ident: # traditional s = '' else: # modular s = f'${method.ident}$' if method.ident and method.ident[0] == '2': # Blowfish variants if rounds is None: log_rounds = 12 else: log_rounds = int.bit_length(rounds-1) if rounds != 1 << log_rounds: raise ValueError('rounds must be a power of 2') if not 4 <= log_rounds <= 31: raise ValueError('rounds out of the range 2**4 to 2**31') s += f'{log_rounds:02d}$' elif method.ident in ('5', '6'): # SHA-2 if rounds is not None: if not 1000 <= rounds <= 999_999_999: raise ValueError('rounds out of the range 1000 to 999_999_999') s += f'rounds={rounds}$' elif rounds is not None: raise ValueError(f"{method} doesn't support the rounds argument") s += ''.join(_sr.choice(_saltchars) for char in range(method.salt_chars)) return s def crypt(word, salt=None): """Return a string representing the one-way hash of a password, with a salt prepended. If ``salt`` is not specified or is ``None``, the strongest available method will be selected and a salt generated. Otherwise, ``salt`` may be one of the ``crypt.METHOD_*`` values, or a string as returned by ``crypt.mksalt()``. """ if salt is None or isinstance(salt, _Method): salt = mksalt(salt) return _crypt.crypt(word, salt) # available salting/crypto methods methods = [] def _add_method(name, *args, rounds=None): method = _Method(name, *args) globals()['METHOD_' + name] = method salt = mksalt(method, rounds=rounds) result = None try: result = crypt('', salt) except OSError as e: # Not all libc libraries support all encryption methods. if e.errno == errno.EINVAL: return False raise if result and len(result) == method.total_size: methods.append(method) return True return False _add_method('SHA512', '6', 16, 106) _add_method('SHA256', '5', 16, 63) # Choose the strongest supported version of Blowfish hashing. # Early versions have flaws. Version 'a' fixes flaws of # the initial implementation, 'b' fixes flaws of 'a'. # 'y' is the same as 'b', for compatibility # with openwall crypt_blowfish. for _v in 'b', 'y', 'a', '': if _add_method('BLOWFISH', '2' + _v, 22, 59 + len(_v), rounds=1<<4): break _add_method('MD5', '1', 8, 34) _add_method('CRYPT', None, 2, 13) del _v, _add_method
SIMPAN PERUBAHAN