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

Pythonでのセキュアハッシュとメッセージダイジェスト


安全なハッシュおよびメッセージダイジェストプロセスでは、hashlibモジュールを使用する必要があります。このモジュールは、SHA1、SHA224、SHA256、SHA512などのさまざまなセキュアハッシュアルゴリズムに共通のインターフェイスを実装します。また、RSAのMD5アルゴリズムも実装します。古いアルゴリズムはメッセージダイジェストと呼ばれ、新しい方法はセキュアハッシュと呼ばれます。

このモジュールを使用するには、hashlibモジュールをPythonコードにインポートする必要があります。

import hashlib

この方法では、md5、sha1、sha224、sha256、sha512などの事前定義されたアルゴリズムがいくつか存在します。 OpenSSLライブラリからアルゴリズムを追加できます。

一部のメソッド、hashlibモジュールの定数は次のとおりです-

一定のhashlib.algorithm_guranteed

ハッシュアルゴリズムの名前が返されます。これは、すべての異なるプラットフォームでこのモジュールによってサポートされることが保証されています。

一定のhashlib.algorithm_available

実行中のPythonインタープリターで使用できるハッシュアルゴリズムの名前が返されます。

一定のhashlib.digest_size

結果のハッシュのサイズをバイト単位で返します。

一定のhashlib.block_size

ハッシュアルゴリズムの内部ブロックサイズをバイト単位で返します。

メソッドhashlib.new(name [、data])

コンストラクターです。最初の引数として目的のアルゴリズム名を取ります。 OpenSSLライブラリの事前定義されたハッシュまたはその他のアルゴリズムを使用できます。

メソッドhashlib.update(arg)

このメソッドは、指定された引数でハッシュオブジェクトを更新するために使用されます。この関数を繰り返し呼び出すことは、引数を連結した1回の呼び出しと同等です。

メソッドhashlib.digest()

このメソッドは、updateメソッドを介して渡されたダイジェストデータを返すために使用されます。バイトオブジェクトのサイズはdigest_sizeと同じです。 0から255までの全範囲のバイトが含まれる場合があります。

メソッドhashlib.hexdigest()

この方法はダイジェスト方法と同じですが、結果には16進値のみが含まれます。この方法は、インターネットを介して非常に簡単にデータを送信するために使用されます。

サンプルコード

import hashlib
my_hash1 = hashlib.md5() #Choose md5 and update with a bytes
update_bytes = b'Python123'
my_hash1.update(update_bytes)
print("Result after digesting: " + str(my_hash1.hexdigest()))
print("Digest Size: " + str(my_hash1.digest_size))
my_hash2 = hashlib.sha256() #Choose SHA256 and update with same bytes
my_hash2.update(update_bytes)
print("Result after digesting: " + str(my_hash2.hexdigest()))
print("Digest Size: " + str(my_hash2.digest_size))

出力

Result after digesting: ae35eacb1cb6f6d38c29a04ecb2d7471
Digest Size: 16
Result after digesting: bba32ba33d6a7f3e02a96e2d7ee6860765780aee42b878007369e373ff419b1e
Digest Size: 32

  1. PythonTkinterのメソッドの後

    TkinterはGUIを作成するためのPythonライブラリです。 GUIウィンドウやその他のウィジェットを作成および操作してデータやGUIイベントを表示するための多くの組み込みメソッドがあります。この記事では、afterメソッドがTkinterGUIでどのように使用されるかを見ていきます。 構文 .after(delay, FuncName=FuncName) This method calls the function FuncName after the given delay in milisecond ウィジェットの表示 ここでは、単語のリストをランダムに表示するフレームを作成しま

  2. Pythonのgetattr()関数とsetattr()関数の違いは何ですか?

    getattr()メソッド getattr()メソッドは、オブジェクトの名前付き属性の値を返します。見つからない場合は、関数に提供されたデフォルト値を返します。 構文 getattr()メソッドの構文は次のとおりです- getattr(object, name[, default]) getattr()メソッドは複数のパラメーターを取ることができます- getattr()メソッドは-を返します 指定されたオブジェクトの名前付き属性の値 デフォルト、名前付き属性が見つからない場合 名前付き属性が見つからず、デフォルトが定義されていない場合のAttributeError例外 set