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

Tạo số ngẫu nhiên bảo mật để quản lý bí mật bằng Python

Để tạo các số ngẫu nhiên an toàn bằng mật mã, chúng ta có thể sử dụng bí mật mô-đun trong python. Mô-đun này rất hữu ích để tạo mật khẩu an toàn, xác thực tài khoản, mã thông báo bảo mật hoặc một số bí mật liên quan.

Để sử dụng các lớp và mô-đun của mô-đun bí mật, chúng ta nên nhập mô-đun đó vào mã của chúng tôi.

import secrets

Số ngẫu nhiên

Các bí mật mô-đun được sử dụng để truy cập một số nguồn ngẫu nhiên an toàn. Điều đó được cung cấp bởi hệ điều hành.

Các lớp và chức năng, liên quan đến số ngẫu nhiên của các mô-đun bí mật là -

Bí mật của lớp .ystemRandom

Nó là một lớp để tạo ra các số ngẫu nhiên, bằng cách sử dụng một số nguồn chất lượng cao nhất. Các nguồn này do hệ điều hành cung cấp.

Method secret.choice (chuỗi)

Phương pháp này được sử dụng để chọn một phần tử từ dãy không trống một cách ngẫu nhiên.

Method secret.randbelow (n)

Phương pháp này được sử dụng để chọn một giá trị số nguyên từ phạm vi 0 đến n (Dành riêng).

Method secret.randbits (k)

Phương thức này được sử dụng để trả về một số nguyên với k số bit ngẫu nhiên.

Tạo mã thông báo

Các bí mật mô-đun cũng có thể tạo một số mã thông báo an toàn. Những loại mã thông báo này rất hữu ích để tạo đặt lại mật khẩu, URL phức tạp, v.v.

Một số phương pháp, liên quan đến tạo mã thông báo, là -

Method secret.token_bytes ([nbytes =None])

Phương thức này trả về một chuỗi byte ngẫu nhiên với nbyte để tạo mã thông báo an toàn. Khi giá trị nbytes không được cung cấp, nó sẽ sử dụng một giá trị mặc định được chỉ định.

Method secret.token_hex ([nbytes =None])

Phương thức này trả về một chuỗi văn bản ngẫu nhiên ở dạng thập lục phân. Chuỗi trả về có nbyte byte ngẫu nhiên. Mỗi ký tự có thể được chuyển đổi thành hai chữ số hex. Khi giá trị nbytes không được cung cấp, nó sẽ sử dụng một giá trị mặc định được chỉ định.

Method secret.token_urlsafe ([nbytes =None])

Phương thức này được sử dụng để trả về một chuỗi văn bản URL an toàn ngẫu nhiên. Văn bản về cơ bản được mã hóa Base64. Trung bình mỗi byte cho kết quả 1,3 ký tự (Khoảng).

Mã mẫu

import secrets
my_sequence = ['K','?','D',':','o','5','t','l','Y','0']
rand_pass = ''
for i in range(15):
   rand_char = secrets.choice(my_sequence)
   rand_pass += rand_char
print("Random Password is: " + rand_pass)
my_tok1 = secrets.token_hex(10) #Create HEX token of length 10 
my_tok2 = secrets.token_hex(5) #Create HEX token of length 5
print("First Token: " + my_tok1)
print("First Token: " + my_tok2)

Đầu ra

Random Password is: YK0l:YD??lKKY?o
First Token: f3e68646dcf1082e1038
First Token: e4ae3c2384