Python-forensics-cloud-implementation

提供:Dev Guides
移動先:案内検索

Pythonフォレンジック-クラウドの実装

  • クラウドコンピューティング*は、インターネット経由でユーザーに提供されるホストサービスのコレクションとして定義できます。 組織は、仮想マシン(VM)、ストレージ、またはユーティリティとしてのアプリケーションを含むリソースを消費したり、計算したりすることができます。

Pythonプログラミング言語でアプリケーションを構築することの最も重要な利点の1つは、*クラウド*を含むあらゆるプラットフォームにアプリケーションを仮想的に展開できることです。 Pythonはクラウドサーバーで実行でき、デスクトップ、タブレット、スマートフォンなどの便利なデバイスでも起動できることを意味します。

興味深い視点の1つは、* Rainbowテーブル*を生成してクラウドベースを作成することです。 これは、アプリケーションのシングルおよびマルチプロセッシングバージョンの統合に役立ちます。これには、いくつかの考慮事項が必要です。

パイクラウド

Pi Cloudはクラウドコンピューティングプラットフォームであり、Pythonプログラミング言語とAmazon Web Servicesのコンピューティングパワーを統合します。

Pi Cloud

  • レインボーテーブル*で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()

出力

このコードは、次の出力を生成します-

クラウド実装出力

パスワードは、次のスクリーンショットに示すように、表示されるテキストファイルに保存されます。

テキストファイルに保存されているパスワード