Генератор безопасных паролей python

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Генератор безопасных паролей на Python

0awawa0/password_generator

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Программа предназначена для генерации безопасных паролей. Программа запоминает все выданные ей пароли в виде хешей в текстовом файле (т.н. базе данных), благодаря чему программа не выдает одинаковые пароли.

Папка dist содержит установщик программы, созданный с помощью библиотеки cx_Freeze. Корректная работа установленной программы на всех системах не гарантируется.

Также программу можно скомпилировать с использованием файла setup.py. Для этого нужно:

Для удобства использования, программу можно добавить в PATH.

Аргументы для работы с программой:

  • -l/—length LENGTH — длина генерируемого пароля, по-умолчанию 16
  • -nr/—NoRussian — флаг, отключает использование кирилицы
  • -np/—NoPunctuation — флаг, отключает исользование пунктуации
  • -s/—show — флаг, если установлен, сгенерированный пароль отобразится на экране
  • -ns/—NoSave — флаг, если установлен, хеш сгенерированного пароля не сохранится в базе данных
  • -c/—count — задает количество генерируемых паролей, по-умолчанию равное единице. Если передано значение большее единицы, все генерируемые пароли выводятся на экран и не копируются в буфер обмена.
  • -p/—phrase PHRASE — генерация пароля на основе переданной фразы, в этом режиме игнорируются -l, -ns, -nr и -c. Длина пароля зависит только от переданной фразы, пароль не сохраняется в базе данных, не содержит русских символов. Также не гарантируется безопасность пароля.
> genpass Пароль скопирован в буфер обмена
> genpass -l 10 -s W:эa/Ё@НЩэ Пароль скопирован в буфер обмена
> genpass -l 10 -s -np -nr j3Aj71Sgux Пароль скопирован в буфер обмена
> genpass -s --phrase "Векторная сумма импульсов всех тел системы есть величина постоянная, если векторная сумма внешних сил, дейтсвующих на систему тел, равна нулю." V$!V7$3Vp3v$V$dN$7rN Пароль скопирован в буфер обмена

About

Генератор безопасных паролей на Python

Читайте также:  Virtualenv python how to install

Источник

secrets — Generate secure random numbers for managing secrets¶

The secrets module is used for generating cryptographically strong random numbers suitable for managing data such as passwords, account authentication, security tokens, and related secrets.

In particular, secrets should be used in preference to the default pseudo-random number generator in the random module, which is designed for modelling and simulation, not security or cryptography.

Random numbers¶

The secrets module provides access to the most secure source of randomness that your operating system provides.

class secrets. SystemRandom ¶

A class for generating random numbers using the highest-quality sources provided by the operating system. See random.SystemRandom for additional details.

Return a randomly chosen element from a non-empty sequence.

Return a random int in the range [0, n).

Return an int with k random bits.

Generating tokens¶

The secrets module provides functions for generating secure tokens, suitable for applications such as password resets, hard-to-guess URLs, and similar.

secrets. token_bytes ( [ nbytes=None ] ) ¶

Return a random byte string containing nbytes number of bytes. If nbytes is None or not supplied, a reasonable default is used.

>>> token_bytes(16) b'\xebr\x17D*t\xae\xd4\xe3S\xb6\xe2\xebP1\x8b' 

Return a random text string, in hexadecimal. The string has nbytes random bytes, each byte converted to two hex digits. If nbytes is None or not supplied, a reasonable default is used.

>>> token_hex(16) 'f9bf78b9a18ce6d46a0cd2b0b86df9da' 

Return a random URL-safe text string, containing nbytes random bytes. The text is Base64 encoded, so on average each byte results in approximately 1.3 characters. If nbytes is None or not supplied, a reasonable default is used.

>>> token_urlsafe(16) 'Drmhze6EPcv0fN_81Bj-nA' 

How many bytes should tokens use?¶

To be secure against brute-force attacks, tokens need to have sufficient randomness. Unfortunately, what is considered sufficient will necessarily increase as computers get more powerful and able to make more guesses in a shorter period. As of 2015, it is believed that 32 bytes (256 bits) of randomness is sufficient for the typical use-case expected for the secrets module.

Читайте также:  Create xlsx file in java

For those who want to manage their own token length, you can explicitly specify how much randomness is used for tokens by giving an int argument to the various token_* functions. That argument is taken as the number of bytes of randomness to use.

Otherwise, if no argument is provided, or if the argument is None , the token_* functions will use a reasonable default instead.

That default is subject to change at any time, including during maintenance releases.

Other functions¶

Return True if strings or bytes-like objects a and b are equal, otherwise False , using a “constant-time compare” to reduce the risk of timing attacks. See hmac.compare_digest() for additional details.

Recipes and best practices¶

This section shows recipes and best practices for using secrets to manage a basic level of security.

Generate an eight-character alphanumeric password:

import string import secrets alphabet = string.ascii_letters + string.digits password = ''.join(secrets.choice(alphabet) for i in range(8)) 

Applications should not store passwords in a recoverable format, whether plain text or encrypted. They should be salted and hashed using a cryptographically strong one-way (irreversible) hash function.

Generate a ten-character alphanumeric password with at least one lowercase character, at least one uppercase character, and at least three digits:

import string import secrets alphabet = string.ascii_letters + string.digits while True: password = ''.join(secrets.choice(alphabet) for i in range(10)) if (any(c.islower() for c in password) and any(c.isupper() for c in password) and sum(c.isdigit() for c in password) >= 3): break 
import secrets # On standard Linux systems, use a convenient dictionary file. # Other platforms may need to provide their own word-list. with open('/usr/share/dict/words') as f: words = [word.strip() for word in f] password = ' '.join(secrets.choice(words) for i in range(4)) 

Generate a hard-to-guess temporary URL containing a security token suitable for password recovery applications:

import secrets url = 'https://example.com/reset=' + secrets.token_urlsafe() 

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Читайте также:  Отбросить целую часть python

Passwords easy for humans, hard for computers

License

gabfl/password-generator-py

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

A lot of people with security in mind will use random characters as passwords like t.J:YuZcTSB=4z*v . We feel it’s secure because it’s complicated. But the password above is as difficult as abcdefghijkl!123 for a machine to brute force even though it’s a lot easier for a user to remember.

This program attempts to create passwords truly difficult for a computer to brute force and easier to remember for a user.

  • 3 words from the english dictionary
  • 1 random number placed at a random position
  • Random separators between words and numbers

It is very secure because.

  • Since words length differ, the password length is unpredictable
  • The separators change randomly
  • The position of the number change randomly
  • There are 32,000 (words) ^3 (number of words) ^10 (separator) ^10 (separator) ^10 (separator) ^1000 (numbers) different combinations possible

Here are a few passwords that can be generated:

Coaches_Acquires=Dumbbell_908 28=Haziness_Spatulas+Mortals Knights;Decrypts%Oatcakes_320 Optimise=472+Deterred%Apricots 375+Hazy%Decorate%Ruler Blotched%Dugout_995;Alkyl 
$> pip3 install passwordgenerator $> passwordgenerator 844=Chinless=Jewelry+Consumer

Use within another Python script

>>> from passwordgenerator import pwgenerator >>> pwgenerator.generate() '676=Layers*Bugbear_Escapes'
passwordgenerator [-h] [-n MIN_WORD_LENGTH] [-x MAX_WORD_LENGTH] [-i MAX_INT_VALUE] [-e NUMBER_OF_ELEMENTS] [-s] optional arguments: -h, --help show this help message and exit -n MIN_WORD_LENGTH, --min_word_length MIN_WORD_LENGTH Minimum length for each word -x MAX_WORD_LENGTH, --max_word_length MAX_WORD_LENGTH Maximum length for each word -i MAX_INT_VALUE, --max_int_value MAX_INT_VALUE Maximum value for the integer -e NUMBER_OF_ELEMENTS, --number_of_elements NUMBER_OF_ELEMENTS Number of elements in the password (ie. 4 = 3 words + 1 integer) -s, --no_special_characters Do not use special characters 

About

Passwords easy for humans, hard for computers

Источник

Оцените статью