Pythonを使用してシークレットを管理するための安全な乱数を生成する
安全な乱数を暗号的に生成するために、秘密を使用できます。 Pythonのモジュール。このモジュールは、安全なパスワード、アカウント認証、セキュリティトークン、または関連するシークレットを作成するのに役立ちます。
シークレットモジュールのクラスとモジュールを使用するには、そのモジュールをコードにインポートする必要があります。
import secrets
乱数
秘密 モジュールは、ランダム性の安全なソースにアクセスするために使用されます。これはオペレーティングシステムによって提供されます。
シークレットモジュールの乱数に関連するクラスと関数は-
です。クラスシークレット。SystemRandom
これは、いくつかの最高品質のソースを使用して、乱数を生成するクラスです。これらのソースはオペレーティングシステムによって提供されます。
メソッドsecrets.choice(sequence)
この方法は、空でないシーケンスからランダムに要素を選択するために使用されます。
メソッドsecrets.randbelow(n)
このメソッドは、0からn(排他的)の範囲から1つの整数値を選択するために使用されます。
メソッドsecrets.randbits(k)
このメソッドは、k個のランダムビットを持つ整数を返すために使用されます。
トークンの生成
秘密 モジュールは、いくつかの安全なトークンを生成することもできます。これらのタイプのトークンは、パスワードのリセット、複雑なURLなどを生成するのに役立ちます。
トークン生成に関連するいくつかのメソッドは-
です。メソッドsecrets.token_bytes([nbytes =None])
このメソッドは、安全なトークンを生成するためにnbytesのランダムなバイト文字列を返します。 nbytes値が指定されていない場合、指定されたデフォルト値が使用されます。
メソッドsecrets.token_hex([nbytes =None])
このメソッドは、16進形式のランダムなテキスト文字列を返します。返される文字列には、nbytesのランダムバイトが含まれます。各文字は2桁の16進数に変換できます。 nbytes値が指定されていない場合、指定されたデフォルト値が使用されます。
メソッドsecrets.token_urlsafe([nbytes =None])
このメソッドは、ランダムなURLセーフテキスト文字列を返すために使用されます。テキストは基本的にBase64でエンコードされています。平均すると、各バイトの結果は1.3文字(約)になります。
サンプルコード
import secrets my_sequence = ['K','?','D',':','o','5','t','l','Y','0'] rand_pass = '' for i in range(15): rand_char = secrets.choice(my_sequence) rand_pass += rand_char print("Random Password is: " + rand_pass) my_tok1 = secrets.token_hex(10) #Create HEX token of length 10 my_tok2 = secrets.token_hex(5) #Create HEX token of length 5 print("First Token: " + my_tok1) print("First Token: " + my_tok2)のHEXトークンを作成します
出力
Random Password is: YK0l:YD??lKKY?o First Token: f3e68646dcf1082e1038 First Token: e4ae3c2384
-
Pythonを使用して素数を生成する方法は?
素数は、1とそれ自体を除く他の数で割り切れない数です。 Pythonでは、%モジュロ演算子を使用して、数値が他の除算可能かどうかをテストできます。 1から100までの素数を見つける必要があると仮定すると、範囲内の各数(xとしましょう)は、2からx-1で除算できるかどうかを連続してチェックする必要があります。これは、2つのネストされたループを使用することで実現されます。 for x in range(1,101): for y in range(2,x): if x%y==0:break else: print (x,sep=' ', end=' ') 上
-
Pythonはどのように乱数を生成しますか?
Pythonの標準配布には、乱数生成機能を備えたランダムモジュールがあります。基本的なrandom()関数は、0から1までのランダムな浮動小数点数を返します >>> import random >>> random.random() 0.5204702770265925 同じモジュールから、連続する範囲の間の乱数を返すrandrange()関数があります。 >>> random.randrange(0,10) 4 リストまたはタプルからアイテムをランダムに選択するchoice()関数もあります >>> random.ch