Python-forensics-cloud-implementation
提供:Dev Guides
Pythonフォレンジック-クラウドの実装
- クラウドコンピューティング*は、インターネット経由でユーザーに提供されるホストサービスのコレクションとして定義できます。 組織は、仮想マシン(VM)、ストレージ、またはユーティリティとしてのアプリケーションを含むリソースを消費したり、計算したりすることができます。
Pythonプログラミング言語でアプリケーションを構築することの最も重要な利点の1つは、*クラウド*を含むあらゆるプラットフォームにアプリケーションを仮想的に展開できることです。 Pythonはクラウドサーバーで実行でき、デスクトップ、タブレット、スマートフォンなどの便利なデバイスでも起動できることを意味します。
興味深い視点の1つは、* Rainbowテーブル*を生成してクラウドベースを作成することです。 これは、アプリケーションのシングルおよびマルチプロセッシングバージョンの統合に役立ちます。これには、いくつかの考慮事項が必要です。
パイクラウド
Pi Cloudはクラウドコンピューティングプラットフォームであり、Pythonプログラミング言語とAmazon Web Servicesのコンピューティングパワーを統合します。
- レインボーテーブル*でPiクラウドを実装する例を見てみましょう。
レインボーテーブル
- レインボーテーブル*は、特定のハッシュアルゴリズムに固有の暗号化されたパスワードのすべての可能なプレーンテキスト順列のリストとして定義されます。
- レインボーテーブルは、ハッシュされたパスワードのリストを作成する標準パターンに従います。
- テキストファイルは、暗号化されるパスワードの文字またはプレーンテキストを含むパスワードを生成するために使用されます。
- このファイルは、保存されるメイン関数を呼び出すPiクラウドによって使用されます。
- ハッシュ化されたパスワードの出力もテキストファイルに保存されます。
このアルゴリズムを使用して、データベースにパスワードを保存したり、クラウドシステムにバックアップストレージを保持したりできます。
次の組み込みプログラムは、テキストファイルに暗号化されたパスワードのリストを作成します。
例
import os
import random
import hashlib
import string
import enchant #Rainbow tables with enchant
import cloud #importing pi-cloud
def randomword(length):
return ''.join(random.choice(string.lowercase) for i in range(length))
print('Author- Radhika Subramanian')
def mainroutine():
engdict = enchant.Dict("en_US")
fileb = open("password.txt","a+")
# Capture the values from the text file named password
while True:
randomword0 = randomword(6)
if engdict.check(randomword0) == True:
randomkey0 = randomword0+str(random.randint(0,99))
elif engdict.check(randomword0) == False:
englist = engdict.suggest(randomword0)
if len(englist) > 0:
randomkey0 = englist[0]+str(random.randint(0,99))
else:
randomkey0 = randomword0+str(random.randint(0,99))
randomword3 = randomword(5)
if engdict.check(randomword3) == True:
randomkey3 = randomword3+str(random.randint(0,99))
elif engdict.check(randomword3) == False:
englist = engdict.suggest(randomword3)
if len(englist) > 0:
randomkey3 = englist[0]+str(random.randint(0,99))
else:
randomkey3 = randomword3+str(random.randint(0,99))
if 'randomkey0' and 'randomkey3' and 'randomkey1' in locals():
whasher0 = hashlib.new("md5")
whasher0.update(randomkey0)
whasher3 = hashlib.new("md5")
whasher3.update(randomkey3)
whasher1 = hashlib.new("md5")
whasher1.update(randomkey1)
print(randomkey0+" + "+str(whasher0.hexdigest())+"\n")
print(randomkey3+" + "+str(whasher3.hexdigest())+"\n")
print(randomkey1+" + "+str(whasher1.hexdigest())+"\n")
fileb.write(randomkey0+" + "+str(whasher0.hexdigest())+"\n")
fileb.write(randomkey3+" + "+str(whasher3.hexdigest())+"\n")
fileb.write(randomkey1+" + "+str(whasher1.hexdigest())+"\n")
jid = cloud.call(randomword) #square(3) evaluated on PiCloud
cloud.result(jid)
print('Value added to cloud')
print('Password added')
mainroutine()
出力
このコードは、次の出力を生成します-
パスワードは、次のスクリーンショットに示すように、表示されるテキストファイルに保存されます。