Python tạo chuỗi duy nhất

Phương pháp này tạo ra một chuỗi an toàn bằng cách kết hợp các số, ký tự và chuỗi dấu chấm câu có thể chứa bất kỳ mẫu nào

Tạo chuỗi ngẫu nhiên là một khía cạnh rất quan trọng của lập trình. Số ngẫu nhiên được sử dụng trong mọi thứ, từ trò chơi đến mật mã và tạo chuỗi ngẫu nhiên là một phần thiết yếu của quá trình này. Python có hai mô-đun tạo chuỗi ngẫu nhiên. mô-đun bí mật và mô-đun ngẫu nhiên

Mô-đun bí mật sẽ tạo ra các chuỗi an toàn hơn so với các chuỗi được tạo bởi mô-đun ngẫu nhiên, nhưng sẽ mất nhiều thời gian hơn để tạo chúng so với mô-đun khác. Do đó, nếu bạn cần nhiều chuỗi bảo mật cùng một lúc hoặc chỉ muốn thử nghiệm các loại tính năng bảo mật khác nhau, thì hãy sử dụng phương thức bí mật;

Làm cách nào để xây dựng Trình tạo trích dẫn ngẫu nhiên bằng HTML, CSS và JS?

Mục lục

  • Tạo chuỗi ngẫu nhiên bằng Random. lựa chọn [] trong python
    • Mã ví dụ
    • đầu ra
    • Tạo chuỗi ngẫu nhiên bằng bí mật. lựa chọn [] trong python
    • Mã ví dụ
    • đầu ra
  • Sự kết luận

Tạo chuỗi ngẫu nhiên bằng Random. lựa chọn [] trong python

Ngẫu nhiên. choice[] là một hàm mà bạn có thể sử dụng để tạo chuỗi ngẫu nhiên trong python. Hàm này nhận một tham số, đó là số lượng ký tự cần trả về, sau đó, hàm này sẽ quyết định mỗi ký tự sẽ là gì dựa trên thứ tự mà bạn cung cấp. Đó là một cách dễ dàng để tạo chuỗi cho mật khẩu hoặc tên người dùng

Mã ví dụ

import string
import random

N = 5

ran_str = ''.join[random.choices[string.ascii_uppercase +
                            string.digits, k = N]]

print["Random String : " + str[ran_str]] 

đầu ra

Tạo chuỗi ngẫu nhiên bằng bí mật. lựa chọn [] trong python

Những bí mật. Phương thức choice[] là một trình tạo chuỗi ngẫu nhiên bằng mật mã để đảm bảo không có hai quy trình nào có thể nhận được cùng một kết quả đồng thời khi sử dụng phương thức này. Điều này an toàn hơn nhiều so với việc chỉ tạo một chuỗi ngẫu nhiên với giá trị ngẫu nhiên. choice[], vì nó đảm bảo tính duy nhất và không thể đoán trước của chuỗi đầu ra. Nếu bạn đang tìm kiếm một cách dễ dàng để tạo chuỗi ngẫu nhiên trong python, thì bí mật. choice[] sẽ là lựa chọn tốt nhất của bạn

Mã ví dụ

import string
import secrets

N = 5

ran_str = ''.join[secrets.choice[string.ascii_uppercase +
                            string.digits]
                  for i in range[N]]

print["Random String : " + str[ran_str]] 

đầu ra

Sự kết luận

Chuỗi ngẫu nhiên rất hữu ích để tạo số nhận dạng duy nhất. Nếu bạn cần tạo một chuỗi ngẫu nhiên trong Python, có nhiều cách để thực hiện; . Bạn cũng có thể sử dụng một số module đi kèm với python như crypto hay os. Các phương thức phức tạp hơn liên quan đến các trình tạo như choice[] và shuffle[], nhưng chúng yêu cầu nhiều mã hơn là chỉ gọi randint[]

Mô-đun

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
0 được sử dụng để tạo các số ngẫu nhiên mạnh về mật mã phù hợp để quản lý dữ liệu như mật khẩu, xác thực tài khoản, mã thông báo bảo mật và các bí mật liên quan

Đặc biệt, nên sử dụng

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
0 thay cho trình tạo số giả ngẫu nhiên mặc định trong mô-đun
>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
0, được thiết kế để lập mô hình và mô phỏng, không phải bảo mật hoặc mã hóa

Xem thêm

PEP 506

Số ngẫu nhiên¶

Mô-đun

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
0 cung cấp quyền truy cập vào nguồn ngẫu nhiên an toàn nhất mà hệ điều hành của bạn cung cấp

bí mật của lớp . SystemRandom

Lớp tạo số ngẫu nhiên bằng các nguồn chất lượng cao nhất do hệ điều hành cung cấp. Xem

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
2 để biết thêm chi tiết

bí mật. lựa chọn[trình tự]

Trả về một phần tử được chọn ngẫu nhiên từ một chuỗi không trống

bí mật. ranh giới bên dưới[n]

Trả về một int ngẫu nhiên trong phạm vi [0, n]

bí mật. randbit[k]

Trả về một int với k bit ngẫu nhiên

Tạo mã thông báo¶

Mô-đun

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
0 cung cấp các chức năng để tạo mã thông báo an toàn, phù hợp với các ứng dụng như đặt lại mật khẩu, URL khó đoán và các ứng dụng tương tự.

bí mật. token_bytes[[nbytes=None]]

Trả về một chuỗi byte ngẫu nhiên chứa nbytes số byte. Nếu nbytes là

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
4 hoặc không được cung cấp, thì một giá trị mặc định hợp lý sẽ được sử dụng

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

bí mật. token_hex[[nbytes=None]]

Trả về một chuỗi văn bản ngẫu nhiên, ở dạng thập lục phân. Chuỗi có nbyte byte ngẫu nhiên, mỗi byte được chuyển đổi thành hai chữ số hex. Nếu nbytes là

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
4 hoặc không được cung cấp, thì một giá trị mặc định hợp lý sẽ được sử dụng

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'

bí mật. token_urlsafe[[nbytes=None]]

Trả về một chuỗi văn bản ngẫu nhiên an toàn cho URL, chứa nbyte byte ngẫu nhiên. Văn bản được mã hóa Base64, do đó, trung bình mỗi byte cho kết quả khoảng 1. 3 ký tự. Nếu nbytes là

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
4 hoặc không được cung cấp, thì một giá trị mặc định hợp lý sẽ được sử dụng

>>> token_urlsafe[16]  
'Drmhze6EPcv0fN_81Bj-nA'

Mã thông báo nên sử dụng bao nhiêu byte?¶

Để an toàn trước các cuộc tấn công vũ phu, mã thông báo cần phải có đủ tính ngẫu nhiên. Thật không may, những gì được coi là đủ sẽ nhất thiết tăng lên khi máy tính trở nên mạnh mẽ hơn và có thể đưa ra nhiều dự đoán hơn trong một khoảng thời gian ngắn hơn. Kể từ năm 2015, người ta tin rằng 32 byte [256 bit] ngẫu nhiên là đủ cho trường hợp sử dụng điển hình dự kiến ​​cho mô-đun

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
0

Đối với những người muốn quản lý độ dài mã thông báo của riêng họ, bạn có thể chỉ định rõ ràng mức độ ngẫu nhiên được sử dụng cho mã thông báo bằng cách đưa ra đối số

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
8 cho các hàm
>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
9 khác nhau. Đối số đó được coi là số byte ngẫu nhiên sẽ sử dụng

Mặt khác, nếu không có đối số nào được cung cấp hoặc nếu đối số là

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
4, thì hàm
>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
9 sẽ sử dụng giá trị mặc định hợp lý để thay thế

Ghi chú

Mặc định đó có thể thay đổi bất cứ lúc nào, kể cả trong quá trình phát hành bảo trì

Cac chưc năng khac¶

bí mật. so sánh_digest[a , b]

Trả về

>>> token_urlsafe[16]  
'Drmhze6EPcv0fN_81Bj-nA'
2 nếu chuỗi hoặc đối tượng giống byte a và b bằng nhau, nếu không thì là
>>> token_urlsafe[16]  
'Drmhze6EPcv0fN_81Bj-nA'
3, sử dụng "so sánh thời gian không đổi" với . Xem
>>> token_urlsafe[16]  
'Drmhze6EPcv0fN_81Bj-nA'
4 để biết thêm chi tiết.

Công thức nấu ăn và thực hành tốt nhất¶

Phần này hiển thị các công thức và phương pháp hay nhất để sử dụng

>>> token_hex[16]  
'f9bf78b9a18ce6d46a0cd2b0b86df9da'
0 nhằm quản lý mức bảo mật cơ bản

Tạo mật khẩu gồm tám ký tự chữ và số

import string
import secrets

N = 5

ran_str = ''.join[secrets.choice[string.ascii_uppercase +
                            string.digits]
                  for i in range[N]]

print["Random String : " + str[ran_str]] 
7

Ghi chú

Các ứng dụng không được lưu trữ mật khẩu ở định dạng có thể phục hồi, cho dù là văn bản thuần túy hay được mã hóa. Chúng nên được muối và băm bằng cách sử dụng hàm băm một chiều [không thể đảo ngược] mạnh về mật mã

Tạo mật khẩu gồm 10 ký tự chữ và số với ít nhất một ký tự chữ thường, ít nhất một ký tự chữ hoa và ít nhất ba chữ số

import string
import secrets

N = 5

ran_str = ''.join[secrets.choice[string.ascii_uppercase +
                            string.digits]
                  for i in range[N]]

print["Random String : " + str[ran_str]] 
8

Tạo cụm mật khẩu kiểu XKCD

import string
import secrets

N = 5

ran_str = ''.join[secrets.choice[string.ascii_uppercase +
                            string.digits]
                  for i in range[N]]

print["Random String : " + str[ran_str]] 
9

Tạo một URL tạm thời khó đoán có chứa mã thông báo bảo mật phù hợp cho các ứng dụng khôi phục mật khẩu

Chủ Đề