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_wheel1. Đảm bảo thư viện bánh xe được cài đặt trước Show
$ pip install wheel Chạy $ python setup.py bdist_wheel2 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_wheel0 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_wheel1. 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_wheel2. $ 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_wheel3 để 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_wheel4 Đị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_wheel5. Đ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_wheel6 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_wheel1 Tạo tệp $ python setup.py bdist_wheel7 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_wheel4 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_wheel5 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.whl0). 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_wheel7 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.whl1 như $ pip install flaskr-1.0.0-py3-none-any.whl0. 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_wheel3 để 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
Mục lục
Tại sao nên sử dụng mô-đun bí mậtTrì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 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
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_wheel4 và $ python setup.py bdist_wheel5, 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
Hãy xem cách sử dụng mô-đun bí mật Lớp $ python setup.py bdist_wheel 03
Hãy xem ví dụ về cách sử dụng lớp $ python setup.py bdist_wheel03 để bảo vệ trình tạo ngẫu nhiên $ python setup.py bdist_wheel6 Bí mật Chức năng mô-đunHã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_wheel3Nhận một thể hiện của trình tạo ngẫu nhiên an toàn $ python setup.py bdist_wheel09Tạo một số nguyên ngẫu nhiên an toàn $ python setup.py bdist_wheel80Trả 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_wheel81trả 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_wheel82Trả về một chuỗi byte ngẫu nhiên an toàn $ python setup.py bdist_wheel83Trả 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_wheel84Trả về một URL ngẫu nhiên an toàn- thứ hạng bên dưới(n)
Thí dụ $ python setup.py bdist_wheel0 lựa chọn (dãy)Phương thức $ python setup.py bdist_wheel90 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_wheel8 randbit(k)
Nó tạo ra một số nguyên ngẫu nhiên trong phạm vi bit
Hãy xem ví dụ $ python setup.py bdist_wheel9 Tạo mã thông báo bảo mật bằng mô-đun bí mậtMô-đ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
Ví dụ để tạo mã thông báo an toàn$ pip install flaskr-1.0.0-py3-none-any.whl1 đầu ra $ pip install flaskr-1.0.0-py3-none-any.whl5 Nên sử dụng bao nhiêu byte mã thông báoMã 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.whl13. Hàm này trả về $ pip install flaskr-1.0.0-py3-none-any.whl14 nếu chuỗi $ pip install flaskr-1.0.0-py3-none-any.whl15 và $ pip install flaskr-1.0.0-py3-none-any.whl16 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ậtHã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. –
Thí dụ $ python setup.py bdist_wheel0 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 |