Случайные строки и числа полезны, когда дело касается безопасности. В информатике предсказуемые объекты менее безопасны, а менее предсказуемые элементы более безопасны. Когда мы подписываемся на услуги, нам нужно предоставить пароль. Мы можем использовать эти случайные строки в качестве пароля, который менее предсказуем и более безопасен.
Python предоставляет несколько пакетов, которые имеют дело со случайной строкой, числами и даже криптографией.
- Генерировать случайную строку в Python
- Пример
- Вывод
- Вывод
- Сгенерировать случайную строку с прописными буквами
- Вывод
- Генерировать случайную строку только из определенных букв
- Вывод
- Создать случайную строку без повторяющихся символов
- Вывод
- Создание случайной буквенно-цифровой строки в Python
- Вывод
- Использование secrets.choice ()
- Вывод
- Заключение
Генерировать случайную строку в Python
Чтобы сгенерировать случайную строку в Python, используйте модуль string и random.choices () .
Строковый модуль в Python содержит различные строковые константы, которые включают символы ASCII всех регистров. Он также включает отдельные константы для прописных и строчных букв, цифр и специальных символов.
Модуль random в Python выполняет случайные генерации.
Пример
# app.pyimport randomimport stringdef generate_random_string (length): letter = string .ascii_lowercase rand_string = '' .join (random.choice (буквы) для i в диапазоне (длина)) print («Случайная строка длины», length, «is:», rand_string) generate_random_string (8)
Вывод
Случайная строка длины 8: nwmqqxyf
В этом примере мы генерируем случайную строку на основе от длины, которую мы передаем функции.
Внутри функции мы сгенерировали случайную строку с комбинацией нижнего регистра затем используйте константу string.ascii_letters . Константа string.ascii_letters включает все строчные и прописные буквы.
Чтобы сгенерировать строку со всеми строчными буквами, используйте string.ascii_lowercase .
На следующем шаге запустите цикл for n количество раз, что является длиной строки, чтобы выбрать один символ из строки константу с помощью метода random.choice (), присоедините ее к строковой переменной и используйте метод join () для формирования случайной строки.
Давайте передадим 16 в качестве длины, и будет сгенерирована случайная строка длиной 16.
import randomimport stringdef generate_random_string (length): letter = string.ascii_lowercase rand_string = ' '.join (random.choice (буквы) для i в диапазоне (длина)) print ("Случайная строка длины", length, "is:", rand_string) generate_random_string (16)
Вывод
Случайная строка длиной 16: oxepenikhgjmhknp
Сгенерировать случайную строку с прописными буквами
Чтобы сгенерировать строку со всеми прописными буквами, используйте свойство string.ascii_uppercase .
import randomimport stringdef generate_random_string (длина): буквы = строка. ascii_uppercase rand_string = '' .join (random.choice (буквы) для i в диапазоне (длина)) print («Случайная строка длины», length, «is:», rand_string) generate_random_string (16)
Вывод
Случайная строка длиной 16: MAWNYZRAVTHHGUVX
Каждый раз, когда вы запускаете файл, вы получаете другой вывод.
Генерировать случайную строку только из определенных букв
Вместо этого вы можете сгенерировать случайную строку только из определенных букв записи string.ascii_uppercase , здесь вам нужно написать конкретную строку, из которой вам нужно сгенерировать случайную строку.
Кроме того, вам не нужно строковый модуль Python , потому что мы используем конкретную строку.
import randomdef generate_random_string (length): letter = 'bobbyelevenmilliehopperjane' rand_string = '' .join (random .choice (буквы) для i в диапазоне (длина)) print («Случайная строка длины», length, «is:», rand_string) generate_random_ string (16)
Вывод
Случайная строка длиной 16: leerljlbvmpelony
Вы можно увидеть, что все буквы взяты из предоставленных букв.
Создать случайную строку без повторяющихся символов
Случайный. Функция choice () может принимать повторяющиеся символы, но метод random.sample () не может принимать повторяющиеся символы, поэтому мы можем использовать метод random.sample () для генерации случайной строки.
import randomimport stringdef generate_random_string (length): letter = string.ascii_lowercase rand_string = '' .join (random.sample (letter, length)) print ("Случайная строка длины", length, "is:", rand_string) generate_random_string (16)
Вывод
Случайная строка длиной 16: gvekicdsfmrxbuyj
Создание случайной буквенно-цифровой строки в Python
Чтобы сгенерировать буквенно-цифровую случайную строку в Python, используйте string.ascii_letters ong> и string.digits для получения комбинаций букв и цифр.
import randomimport stringdef generate_alphanum_random_string (length): letter_and_digits = string.ascii_letters + string. digits rand_string = '' .join (random.sample (letter_and_digits, length)) print ("Буквенная строка длины в случайном порядке", length, "is:", rand_string) generate_alphanum_random_string (16)
Вывод
Буквенно-цифровая случайная строка длиной 16: n7b1K3wavxXrDdjO
Из вывода видно, что мы получили буквенно-цифровую случайную строку.
Использование secrets.choice ()
Python предоставляет пакет secrets для криптографической генерации более безопасные случайные числа. секреты. Метод choice () имеет внутренний алгоритм, который сформирован таким образом, что он генерирует менее предсказуемые случайные числа.
import secretsimport stringdef generate_alphanum_crypt_string (length): letter_and_digits = string.ascii_letters + string.digits crypt_rand_string = '' .join (secrets.choice (letter_and_digits) для i в диапазоне (длина)) print («Загадочная случайная строка длины», length, «is:», crypt_rand_string) generate_alphanum_crypt_string (16)
Вывод
Загадочная случайная строка длиной 16: Pq9hga3IyExXKVhX
Заключение
Если вы генерируете безопасный пароль, я предлагаю использовать метод secrets.choice () вместо random. choice () метод. Это все для этого урока.