Bí mật python vs ngẫu nhiên

Khi bạn muốn triển khai ứng dụng của mình ở nơi khác, bạn xây dựng tệp phân phối. Tiêu chuẩn hiện tại cho phân phối Python là định dạng bánh xe, với phần mở rộng

$ python setup.py bdist_wheel
1. Đảm bảo thư viện bánh xe được cài đặt trước

$ pip install wheel

Chạy

$ python setup.py bdist_wheel
2 bằng Python cung cấp cho bạn một công cụ dòng lệnh để đưa ra các lệnh liên quan đến xây dựng. Lệnh
$ python setup.py bdist_wheel
0 sẽ tạo tệp phân phối bánh xe

$ python setup.py bdist_wheel

Bạn có thể tìm thấy tệp trong

$ python setup.py bdist_wheel
1. Tên tệp có định dạng {project name}-{version}-{python tag} -{abi tag}-{platform tag}

Sao chép tệp này sang một máy khác, thiết lập một virtualenv mới , sau đó cài đặt tệp bằng

$ python setup.py bdist_wheel
2.

$ pip install flaskr-1.0.0-py3-none-any.whl

Pip sẽ cài đặt dự án của bạn cùng với các phụ thuộc của nó

Vì đây là một máy khác, bạn cần chạy lại

$ python setup.py bdist_wheel
3 để tạo cơ sở dữ liệu trong thư mục phiên bản

$ flask --app flaskr init-db

Khi Flask phát hiện ra rằng nó đã được cài đặt [không ở chế độ có thể chỉnh sửa], nó sẽ sử dụng một thư mục khác cho thư mục phiên bản. Thay vào đó, bạn có thể tìm thấy nó tại

$ python setup.py bdist_wheel
4

Định cấu hình Khóa bí mật¶

Khi bắt đầu hướng dẫn, bạn đã đặt giá trị mặc định cho

$ python setup.py bdist_wheel
5. Điều này nên được thay đổi thành một số byte ngẫu nhiên trong sản xuất. Mặt khác, những kẻ tấn công có thể sử dụng khóa
$ python setup.py bdist_wheel
6 công khai để sửa đổi cookie phiên hoặc bất kỳ thứ gì khác sử dụng khóa bí mật

Bạn có thể sử dụng lệnh sau để xuất khóa bí mật ngẫu nhiên

$ python setup.py bdist_wheel
1

Tạo tệp

$ python setup.py bdist_wheel
7 trong thư mục cá thể mà nhà máy sẽ đọc từ đó nếu nó tồn tại. Sao chép giá trị được tạo vào nó

$ python setup.py bdist_wheel
8 ¶

$ python setup.py bdist_wheel
4

Bạn cũng có thể đặt bất kỳ cấu hình cần thiết nào khác tại đây, mặc dù

$ python setup.py bdist_wheel
5 là cấu hình duy nhất cần thiết cho Flaskr

Chạy với Máy chủ sản xuất¶

Khi chạy công khai thay vì trong quá trình phát triển, bạn không nên sử dụng máy chủ phát triển tích hợp [

$ pip install flaskr-1.0.0-py3-none-any.whl
0]. Máy chủ phát triển do Werkzeug cung cấp để thuận tiện, nhưng không được thiết kế để hoạt động đặc biệt hiệu quả, ổn định hoặc an toàn

Thay vào đó, hãy sử dụng máy chủ WSGI sản xuất. Ví dụ: để sử dụng Waitress, trước tiên hãy cài đặt nó trong môi trường ảo

$ python setup.py bdist_wheel
7

Bạn cần nói với Waitress về đơn đăng ký của mình, nhưng nó không sử dụng

$ pip install flaskr-1.0.0-py3-none-any.whl
1 như
$ pip install flaskr-1.0.0-py3-none-any.whl
0. Bạn cần yêu cầu nó nhập và gọi nhà máy ứng dụng để lấy một đối tượng ứng dụng

Trăn 3. 6 đã giới thiệu một mô-đun bí mật để tạo các số ngẫu nhiên mạnh mẽ và an toàn. Trong bài học này, bạn sẽ học cách sử dụng các hàm mô-đun bí mật và lớp

$ python setup.py bdist_wheel
3 để tạo các số, dữ liệu, URL và mã thông báo ngẫu nhiên một cách bảo mật và an toàn

Cũng thấy

  • Bài tập tạo dữ liệu ngẫu nhiên trong Python
  • Python tạo dữ liệu ngẫu nhiên Quiz

Mục lục

  • Tại sao nên sử dụng mô-đun bí mật
  • Bí mật lớp học. hệ thốngngẫu nhiên
  • Bí mật Chức năng mô-đun
    • thứ hạng bên dưới[n]
    • lựa chọn [dãy]
    • randbit[k]
  • Tạo mã thông báo bảo mật bằng mô-đun bí mật
    • Ví dụ để tạo mã thông báo an toàn
    • Nên sử dụng bao nhiêu byte mã thông báo
  • Ví dụ thực tế về mô-đun bí mật
  • Bước tiếp theo

Tại sao nên sử dụng mô-đun bí mật

Trình tạo ngẫu nhiên an toàn bằng mật mã tạo dữ liệu ngẫu nhiên bằng các phương pháp đồng bộ hóa để đảm bảo rằng không có hai quy trình nào có thể nhận được cùng một dữ liệu đồng thời

chức năng bí mật python

Trình tạo ngẫu nhiên được cung cấp bởi mô-đun ngẫu nhiên Python là trình tạo số giả ngẫu nhiên không bảo mật bằng mật mã. Kết quả là mô-đun bí mật được thêm vào Python 3. 6 trở đi để bảo mật trình tạo số ngẫu nhiên

Trước Python 3. 6, chúng ta có lớp Random[] và SystemRandom để tạo mã ngẫu nhiên an toàn bằng mật mã

Mô-đun bí mật là CSPRNG, tôi. e. , Trình tạo số giả ngẫu nhiên mạnh bằng mật mã. Nó được sử dụng để tạo ra các số ngẫu nhiên an toàn và hữu ích trong các ứng dụng nhạy cảm về bảo mật. PEP – 0506 được thiết kế để thêm mô-đun secret vào thư viện chuẩn Python

Sử dụng mô-đun bí mật để tuân theo các chức năng tiêu chuẩn liên quan đến bảo mật

  • Tạo số ngẫu nhiên,
  • Tạo mật khẩu và OTP
  • mã thông báo ngẫu nhiên
  • Khôi phục mật khẩu URL an toàn và khóa phiên

Ghi chú. Mô-đun bí mật chỉ có trong Python 3. 6 trở lên. Nếu bạn đang sử dụng phiên bản Python cũ hơn, vui lòng tham khảo Cách bảo mật trình tạo ngẫu nhiên trong Python

Mô-đun bí mật dựa trên 

$ python setup.py bdist_wheel
4 và 
$ python setup.py bdist_wheel
5, một giao diện cho nguồn mã hóa ngẫu nhiên tốt nhất của hệ điều hành

  • Trên windows,
    $ python setup.py bdist_wheel
    
    4 sử dụng nội bộ CryptGenRandom[]
  • Linux3. 17 trở lên, cuộc gọi tòa nhà 
    $ python setup.py bdist_wheel
    
    01 được sử dụng khi khả dụng
  • Trên OpenBSD 5. 6 trở lên, hàm C
    $ python setup.py bdist_wheel
    
    02 được sử dụng

Hãy xem cách sử dụng mô-đun bí mật

Lớp
$ python setup.py bdist_wheel
03

  • Lớp tạo số ngẫu nhiên an toàn bằng các nguồn chất lượng cao nhất do hệ điều hành cung cấp
  • Sử dụng lớp
    $ python setup.py bdist_wheel
    
    03, chúng ta có thể sử dụng tất cả các chức năng của một mô-đun ngẫu nhiên
  • Trước mô-đun bí mật, chúng tôi đã sử dụng lớp
    $ python setup.py bdist_wheel
    
    05 để bảo mật dữ liệu ngẫu nhiên bằng mật mã. Cũng có thể truy cập cùng một lớp bằng cách sử dụng mô-đun bí mật. Chỉ cần thực thi
    $ python setup.py bdist_wheel
    
    3 và nó sẽ trả về phiên bản của trình tạo ngẫu nhiên an toàn

Hãy xem ví dụ về cách sử dụng lớp

$ python setup.py bdist_wheel
03 để bảo vệ trình tạo ngẫu nhiên

$ python setup.py bdist_wheel
6

Bí mật Chức năng mô-đun

Hãy xem cách sử dụng các chức năng mô-đun bí mật

Chức năng Mô tả
$ python setup.py bdist_wheel
3Nhận một thể hiện của trình tạo ngẫu nhiên an toàn
$ python setup.py bdist_wheel
09Tạo một số nguyên ngẫu nhiên an toàn
$ python setup.py bdist_wheel
80Trả về một phần tử ngẫu nhiên an toàn từ một chuỗi không trống
$ python setup.py bdist_wheel
81trả về một số nguyên không dấu an toàn với k bit ngẫu nhiên
$ python setup.py bdist_wheel
82Trả về một chuỗi byte ngẫu nhiên an toàn
$ python setup.py bdist_wheel
83Trả về một chuỗi văn bản ngẫu nhiên an toàn, ở định dạng thập lục phân
$ python setup.py bdist_wheel
84Trả về một URL ngẫu nhiên an toàn-

thứ hạng bên dưới[n]

  • Sử dụng hàm
    $ python setup.py bdist_wheel
    
    86 để tạo số nguyên an toàn
  • Hàm này trả về một số nguyên ngẫu nhiên an toàn trong phạm vi [0, n]. Ở đây
    $ python setup.py bdist_wheel
    
    87 là giới hạn trên độc quyền
  • 0 là số bắt đầu trong dải ô và
    $ python setup.py bdist_wheel
    
    87 là số cuối cùng
  • Ví dụ: 
    $ python setup.py bdist_wheel
    
    89 tạo một số ngẫu nhiên duy nhất từ ​​0 đến 9

Thí dụ

$ python setup.py bdist_wheel
0

lựa chọn [dãy]

Phương thức

$ python setup.py bdist_wheel
90 trả về một phần tử được chọn ngẫu nhiên an toàn từ một chuỗi không trống. Ở đây trình tự có thể là danh sách, bộ hoặc chuỗi

Thí dụ

$ python setup.py bdist_wheel
8

randbit[k]

  • Phương thức này trả về một số nguyên không dấu an toàn với 
    $ python setup.py bdist_wheel
    
    91 bit ngẫu nhiên
  • Hàm này dùng để tạo một mặt nạ bit ngẫu nhiên chứa
    $ python setup.py bdist_wheel
    
    92 bit được đặt [điều này không giống với việc tạo một số nguyên ngẫu nhiên vì không đảm bảo rằng nó có ____392 bit được đặt trong đó]
  • Một số ngẫu nhiên được tạo bằng cách sử dụng
    $ python setup.py bdist_wheel
    
    94 sẽ an toàn hơn

Nó tạo ra một số nguyên ngẫu nhiên trong phạm vi bit

  • Nếu
    $ python setup.py bdist_wheel
    
    95 thì Số nguyên không dấu Từ 0 đến 15
  • $ python setup.py bdist_wheel
    
    96 sau đó Số nguyên không dấu Từ 0 đến 255
  • Nếu
    $ python setup.py bdist_wheel
    
    97 thì Số nguyên không dấu Từ 0 đến 65,535, v.v.

Hãy xem ví dụ

$ python setup.py bdist_wheel
9

Tạo mã thông báo bảo mật bằng mô-đun bí mật

Mô-đun bí mật cung cấp các chức năng tạo mã thông báo bảo mật, hữu ích cho các ứng dụng tạo mã thông báo đặt lại mật khẩu và URL khó đoán

Sử dụng các chức năng sau để tạo mã thông báo bảo mật

  • $ python setup.py bdist_wheel
    
    82. Trả về chuỗi byte ngẫu nhiên an toàn chứa số byte. Nếu
    $ python setup.py bdist_wheel
    
    99 không được cung cấp, một giá trị mặc định hợp lý sẽ được sử dụng
  • $ pip install flaskr-1.0.0-py3-none-any.whl
    
    10. Trả về một chuỗi văn bản ngẫu nhiên an toàn ở định dạng thập lục phân. Chuỗi có
    $ python setup.py bdist_wheel
    
    99 byte ngẫu nhiên và mỗi byte được chuyển đổi thành hai chữ số hex. Nếu n-byte không được cung cấp, một giá trị mặc định hợp lý sẽ được sử dụng
  • $ pip install flaskr-1.0.0-py3-none-any.whl
    
    12. Trả về chuỗi văn bản ngẫu nhiên an toàn cho URL, chứa n-byte byte ngẫu nhiên. Sử dụng phương pháp này để tạo các URL khó đoán an toàn

Ví dụ để tạo mã thông báo an toàn

$ pip install flaskr-1.0.0-py3-none-any.whl
1

đầu ra

$ pip install flaskr-1.0.0-py3-none-any.whl
5

Nên sử dụng bao nhiêu byte mã thông báo

Mã thông báo cần phải có đủ tính ngẫu nhiên Để bảo vệ chống lại các cuộc tấn công vũ phu và tấn công thời gian. Theo các chuyên gia, 32 byte [256 bit] ngẫu nhiên là đủ để bảo đảm chống lại các cuộc tấn công vũ phu. Bạn nên chọn kích thước byte theo yêu cầu của bạn

Giảm thời gian tấn công bằng cách sử dụng so sánh_digest[a, b]

Để giảm nguy cơ bị tấn công theo thời gian, mô-đun bí mật có chức năng

$ pip install flaskr-1.0.0-py3-none-any.whl
13. Hàm này trả về 
$ pip install flaskr-1.0.0-py3-none-any.whl
14 nếu chuỗi 
$ pip install flaskr-1.0.0-py3-none-any.whl
15 và 
$ pip install flaskr-1.0.0-py3-none-any.whl
16 bằng nhau, nếu không thì Sai để giảm nguy cơ tấn công theo thời gian

Ví dụ thực tế về mô-đun bí mật

Hãy xem ví dụ ngay bây giờ. Trong ví dụ này, chúng tôi tạo một mật khẩu tạm thời và gửi mật khẩu này trên một URL tạm thời khó đoán để khách hàng có thể đặt lại mật khẩu của mình bằng URL này

bước. –

  • 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, ít nhất một chữ số và một ký hiệu đặc biệt
  • Tạo một URL tạm thời

Thí dụ

$ python setup.py bdist_wheel
0

Bước tiếp theo

Để thực hành những gì bạn đã học trong bài viết này, tôi đã tạo Bài tập tạo dữ liệu ngẫu nhiên Python và Bài kiểm tra tạo dữ liệu ngẫu nhiên Python để kiểm tra các khái niệm tạo dữ liệu ngẫu nhiên của bạn

Chủ Đề