Randomness

如何在 Python 中為關鍵任務應用程序生成隨機字元串

  • July 24, 2021

我試圖弄清楚一些事情,但這對我來說很難。我需要在 Python 中生成一個完全隨機的字元串。我目前的功能附在下面。我只想知道這對於我正在從事的項目(一種加密貨幣類型的網站)是否安全且有益。

import random
import string

def get_random_string(length):
   result_str = ''.join(random.choice(string.ascii_letters) for i in range(length))
   print(result_str)

Random模組使用加密不安全的 PRG (Mersenne Twister)。您需要在 Linux 或Windows 上使用的Secrets模組(此處的文件) 。事實上,我相信以下程式碼應該可以工作(但尚未驗證):urandom``CryptGenRandom()

from secrets import choice
import string

def get_random_string(length):
   result_str = ''.join(choice(string.ascii_letters) for i in range(length))
   print(result_str)

如果你正在實現一些錯誤實現可能會以任何方式花費你金錢的東西,我建議在繼續之前學習實用的密碼學(因為容易犯一些小錯誤,這可能是一個很大的痛苦)。人們喜歡的書籍種類繁多,例如Cryptography Engineering

引用自:https://crypto.stackexchange.com/questions/92233