Pythonフォレンジック-クラウドの実装
Cloud computingインターネットを介してユーザーに提供されるホストされたサービスのコレクションとして定義できます。これにより、組織は、仮想マシン(VM)、ストレージ、またはユーティリティとしてのアプリケーションを含むリソースを消費または計算することができます。
Pythonプログラミング言語でアプリケーションを構築することの最も重要な利点の1つは、アプリケーションを仮想的に任意のプラットフォームにデプロイできることです。 cloud同様に。これは、Pythonがクラウドサーバーで実行でき、デスクトップ、タブレット、スマートフォンなどの便利なデバイスでも起動できることを意味します。
興味深い視点の1つは、次の世代のクラウドベースを作成することです。 Rainbow tables。これは、アプリケーションのシングルプロセッシングバージョンとマルチプロセッシングバージョンの統合に役立ちます。これにはいくつかの考慮事項が必要です。
Piクラウド
Pi Cloudは、Pythonプログラミング言語をAmazon WebServicesのコンピューティングパワーと統合するクラウドコンピューティングプラットフォームです。
Piクラウドを実装する例を見てみましょう rainbow tables。
レインボーテーブル
A rainbow table は、特定のハッシュアルゴリズムに固有の暗号化されたパスワードのすべての可能なプレーンテキスト順列のリストとして定義されます。
レインボーテーブルは、ハッシュされたパスワードのリストを作成する標準パターンに従います。
テキストファイルは、暗号化されるパスワードの文字またはプレーンテキストを含むパスワードを生成するために使用されます。
このファイルは、保存するmain関数を呼び出す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()
出力
このコードは次の出力を生成します-
次のスクリーンショットに示すように、パスワードは表示されているテキストファイルに保存されます。