Computer >> Máy Tính >  >> Lập trình >> Python

Mô-đun Python để tạo số ngẫu nhiên an toàn

Trong bài viết này, chúng ta sẽ xem cách chúng ta có thể tạo các số Ngẫu nhiên an toàn có thể được sử dụng làm mật khẩu một cách hiệu quả. Cùng với các số Ngẫu nhiên, chúng tôi cũng có thể thêm các chữ cái và các ký tự khác để làm cho nó tốt hơn.

với những bí mật

Mô-đun bí mật có một chức năng được gọi là lựa chọn có thể được sử dụng để tạo mật khẩu có độ dài cần thiết bằng cách sử dụng hàm vòng lặp for và phạm vi.

Ví dụ

import secrets
import string
allowed_chars = string.ascii_letters + string.digits + string.printable
pswd = ''.join(secrets.choice(allowed_chars) for i in range(8))
print("The generated password is: \n",pswd)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

The generated password is:
$pB7WY

với điều kiện tối thiểu

Chúng ta có thể buộc các điều kiện như chữ thường và chữ hoa cũng như chữ số phải là một phần của trình tạo mật khẩu. Một lần nữa ở đây chúng tôi sử dụng mô-đun bí mật.

Ví dụ

import secrets
import string
allowed_chars = string.ascii_letters + string.digits + string.printable
while True:
pswd = ''.join(secrets.choice(allowed_chars) for i in range(8))
if (any(c.islower() for c in pswd) and any(c.isupper()
   for c in pswd) and sum(c.isdigit() for c in pswd) >= 3):
      print("The generated pswd is: \n", pswd)
      break

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

The generated pswd is:
p7$7nS2w

Mã thông báo ngẫu nhiên

Khi xử lý các url nếu bạn muốn Mã thông báo ngẫu nhiên là một phần của URL, chúng ta có thể sử dụng các phương pháp dưới đây từ mô-đun bí mật.

Ví dụ

import secrets
# A random byte string
tkn1 = secrets.token_bytes(8)
# A random text string in hexadecimal
tkn2 = secrets.token_hex(8)
# random URL-safe text string
url = 'https://thename.com/reset=' + secrets.token_urlsafe()
print("A random byte string:\n ",tkn1)
print("A random text string in hexadecimal: \n ",tkn2)
print("A text string with url-safe token: \n ",url)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

A random byte string:
b'\x0b-\xb2\x13\xb0Z#\x81'
A random text string in hexadecimal:
d94da5763fce71a3
A text string with url-safe token:
https://thename.com/reset=Rd8eVookY54Q7aTipZfdmz-HS62rHmRjSAXumZdNITo