Python
 Computer >> コンピューター >  >> プログラミング >> Python

安全な乱数を生成するPythonモジュール


この記事では、パスワードとして効果的に使用できる安全な乱数を生成する方法を説明します。乱数に加えて、文字やその他の文字を追加して、より良いものにすることもできます。

秘密あり

シークレットモジュールには、forループと範囲関数を使用して必要な長さのパスワードを生成するために使用できるchoiceという関数があります。

import secrets
import string
allowed_chars = string.ascii_letters + string.digits + string.printable
pswd = ''.join(secrets.choice(allowed_chars) for i in range(8))
print("The generated password is: \n",pswd)

出力

上記のコードを実行すると、次の結果が得られます-

The generated password is:
$pB7WY

少なくとも条件付き

小文字や大文字、数字などの条件をパスワードジェネレータの一部にすることができます。ここでも、シークレットモジュールを使用します。

import secrets
import string
allowed_chars = string.ascii_letters + string.digits + string.printable
while True:
pswd = ''.join(secrets.choice(allowed_chars) for i in range(8))
if (any(c.islower() for c in pswd) and any(c.isupper()
   for c in pswd) and sum(c.isdigit() for c in pswd) >= 3):
      print("The generated pswd is: \n", pswd)
      break

出力

上記のコードを実行すると、次の結果が得られます-

The generated pswd is:
p7$7nS2w

ランダムトークン

URLを処理するときに、ランダムなトークンをURLの一部にしたい場合は、シークレットモジュールから以下のメソッドを使用できます。

import secrets
# A random byte string
tkn1 = secrets.token_bytes(8)
# A random text string in hexadecimal
tkn2 = secrets.token_hex(8)
# random URL-safe text string
url = 'https://thename.com/reset=' + secrets.token_urlsafe()
print("A random byte string:\n ",tkn1)
print("A random text string in hexadecimal: \n ",tkn2)
print("A text string with url-safe token: \n ",url)

出力

上記のコードを実行すると、次の結果が得られます-

A random byte string:
b'\x0b-\xb2\x13\xb0Z#\x81'
A random text string in hexadecimal:
d94da5763fce71a3
A text string with url-safe token:
https://thename.com/reset=Rd8eVookY54Q7aTipZfdmz-HS62rHmRjSAXumZdNITo

  1. 1から20までの乱数を生成し、それらをリストに追加するPythonプログラム

    特定の範囲内で乱数を生成してリストに追加する必要がある場合は、乱数を生成して空のリストに「追加」するメソッドが定義されます。 以下は同じのデモンストレーションです- 例 import random def random_gen(beg, end, my_num):    my_result = []    for j in range(my_num):       my_result.append(random.randint(beg, end))    return my_result my_num

  2. Python pyqrcodeモジュールを使用してQRコードを生成しますか?

    QRコードは、白い背景に正方形のグリッドに配置された黒い正方形で構成されており、カメラなどのイメージングデバイスで読み取ることができます。多くの商用追跡アプリケーションや、携帯電話ユーザー向けのさまざまなアプリケーションの支払いやWebサイトログインなどに広く使用されています。 pyqrcodeモジュールは、Pythonでqrcocodeを生成するために使用されます。データを効率的に保存するために、4つの標準化されたエンコードモード(数値、英数字、バイト/バイナリ、および漢字)があります。 英数字のqrcode pyqrcodeモジュールを使用します。 qrcodeを生成するために使用される