日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

随机数生成器python_python安全开发军规之四:使用安全的随机数生成器

發布時間:2023/12/20 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 随机数生成器python_python安全开发军规之四:使用安全的随机数生成器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

日常開發中,必然會碰到需要生成隨機數的需求,比如生成圖片驗證碼,短信驗證碼……隨機數生成既然是這么簡單的一個功能,開發必然也很簡單,我們看看怎么生成一個隨機數,這里以隨機生成1-100的整數為例。

普通程序員的寫法

import random

random.randint(1,100)

只用了兩行代碼,程序員小Z就寫出了一個隨機數。

QA有話說

隨機模塊提供的隨機生成器是偽隨機數生成器。所謂偽隨機數,是通過固定的算法生成的,其結果是確定的,可預見的。一般情況下,偽隨機數的生成需要一個種子,如果沒有特別設置,種子就是系統的時鐘。簡而言之,由于偽隨機數算法固定,種子固定,那結果就是可推導和模擬的。那這里的隨機也就不是真正的隨機,只要在隨機數生成過程中有一點偏差,破譯者就能夠利用偏差對保密信息進行破譯。

實際上,在密碼學上對隨機性有三個分類:偽隨機序列,密碼學意義上的偽隨機序列,真隨機序列。

前面小Z寫的程序就類屬于偽隨機序列,1-100中每個數出現的頻率相等或近似相等。

而真隨機序列則要求隨機數不能重復產生,且不能由已知的任意數推導出來。意味著,即使在相同的操作條件下,用完全相同的輸入,隨機數生成器生成的兩個隨機數也是不一樣的,即兩次生成的結果是不重復的且完全獨立的。

由于真隨機序列大多需要硬件支持,有一種折衷的方案,也就是密碼學意義上的偽隨機序列。密碼學意義的偽隨機序列要求即使知道前一次的生成,不能預測下一次生成的隨機數。

高級程序員的寫法

import secrets

secret_generator=secrets.SystemRandom()

secret_generator.randint(1,100)

小結

python在3.6版本添加了secrets模塊,使用同步方法生成隨機數據,以確保沒有兩個進程可以同時獲得相同的數據。這個模塊的功能很多,可以進一步發掘,常用于敏感信息保護的場景,常用的有生成隨機數,從確定序列中隨機取值,生成token。

總結

以上是生活随笔為你收集整理的随机数生成器python_python安全开发军规之四:使用安全的随机数生成器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。