ዝርዝር ሁኔታ:

የ Python ደህንነት ምስጠራ/ዲክሪፕት ሶፍትዌር - 3 ደረጃዎች
የ Python ደህንነት ምስጠራ/ዲክሪፕት ሶፍትዌር - 3 ደረጃዎች

ቪዲዮ: የ Python ደህንነት ምስጠራ/ዲክሪፕት ሶፍትዌር - 3 ደረጃዎች

ቪዲዮ: የ Python ደህንነት ምስጠራ/ዲክሪፕት ሶፍትዌር - 3 ደረጃዎች
ቪዲዮ: Cryptography with Python! XOR 2024, ህዳር
Anonim
የ Python ደህንነት ምስጠራ/ዲክሪፕት ሶፍትዌር
የ Python ደህንነት ምስጠራ/ዲክሪፕት ሶፍትዌር
የ Python ደህንነት ምስጠራ/ዲክሪፕት ሶፍትዌር
የ Python ደህንነት ምስጠራ/ዲክሪፕት ሶፍትዌር

በዚህ አስተማሪ ውስጥ በአንዳንድ ቀላል ፓይዘን እንዴት የኢንዱስትሪ ደረጃ AES ን በመጠቀም ፋይሎችዎን ደህንነት መጠበቅ እንደሚችሉ አሳያችኋለሁ።

መስፈርቶች

- ፓይዘን 3.7

- PyAesCrypt ቤተ -መጽሐፍት

- ሃሽሊብ ቤተ -መጽሐፍት

እነዚህ ቤተ -መጽሐፍት ከሌሉዎት ፣ በመተየብ በቀላሉ መጫን ይችላሉ-

pip3 ጫን hashlib

pip3 PyAesCrypt ን ይጫኑ

ተርሚናል ውስጥ (ወይም ሲኤምዲ)

አስቀድመው እነዚህ ሊኖሯቸው ይገባል

- የዘፈቀደ ቤተ -መጽሐፍት

- ቤተ -መጽሐፍት

- የስርዓት ቤተ -መጽሐፍት

እኔ OS X ን እጠቀማለሁ ፣ ግን በፋይሎች ዱካዎች (OS X: /፣ Windows

እባክዎን ያስተውሉ -በተወሰኑ ብልሽቶች ምክንያት በኮዱ ውስጥ ያሉት ጥሰቶች በሆነ ምክንያት አይታዩም። በሚታየው ኮድ ውስጥ ምንም አመላካቾች አይኖሩም ፣ ሆኖም እነሱ በመጨረሻ ባያያዝኳቸው የ Python ፋይሎች እና በተዘጉ ስዕሎች ውስጥ ይገኛሉ። በመግቢያው እጥረት ምክንያት አይሰራም ምክንያቱም ኮዱን በቀጥታ ከሚታየው ጽሑፍ በቀጥታ አይውሰዱ።

ሁሉም ጥገኞች ከተጫኑ ወደ ደረጃ 1 እንሂድ።

ደረጃ 1 - የማዋቀሪያ ፋይልን መጻፍ

የማዋቀሪያ ፋይልን መጻፍ
የማዋቀሪያ ፋይልን መጻፍ
የማዋቀሪያ ፋይልን መጻፍ
የማዋቀሪያ ፋይልን መጻፍ
የማዋቀሪያ ፋይልን መጻፍ
የማዋቀሪያ ፋይልን መጻፍ
የማዋቀሪያ ፋይልን መጻፍ
የማዋቀሪያ ፋይልን መጻፍ

ይህንን በጣም አስተማማኝ ከሚያደርጉት ነገሮች አንዱ የይለፍ ቃሉን ለመፈተሽ ሃሽ መጠቀም ነው። የማዋቀሪያ ፋይል (የእኔን የማዋቀር saessafe.py እየጠራሁ ነው) ወደሚከተለው ይሄዳል

- ለይለፍ ቃል አቃፊ እና ዱሚ ፋይሎችን ይፍጠሩ

- የይለፍ ቃሉን ያዘጋጁ

- የፋይሉን ቁጥር ያዘጋጁ

- የይለፍ ቃሉን ደብቅ

በመጀመሪያ ፣ ጥገኞቻችንን ወደ ሀገር ውስጥ እናስገባለን-

ከ sys ማስመጣት *

አስመጣ os

በዘፈቀደ ማስመጣት

ሃሽሊቢን ማስመጣት

በመቀጠል የይለፍ ቃል ሃሽ እና ዱሚ ፋይሎችን ለማስቀመጥ አቃፊ እንፈጥራለን-

ሞክር: ካልሆነ os.path.exists ('ዴስክቶፕ/safesetup'):

os.mkdir ('ዴስክቶፕ/safesetup/')

ከ OSError በስተቀር

ማተም ("አቃፊ መፍጠር ላይ ስህተት")

ይህ ኮድ safesetup የሚባል አቃፊ ይፈጥራል (እስካሁን ከሌለ)።

ከዚህ በኋላ የይለፍ ቃሉን እናዘጋጃለን ፣ እና በ 1 እና በ 100 መካከል የዘፈቀደ ቁጥርን ወደ ዱሚ ፋይሎች ለማሰስ እንደ መንገድ እንሄዳለን-

ዓለም አቀፍ የይለፍ ቃል የይለፍ ቃል = argv [1]. ኮድ ('utf-8')

n = random.randint (1, 101)

አሁን የእኛ የይለፍ ቃል እና የፋይል ቁጥራችን ስላለን ፣ በአስተማማኝ ሁኔታ ውስጥ 99 ዱሚ ፋይሎችን እና የይለፍ ቃላችንን ሃሽ የያዘ አንድ እውነተኛ ፋይል እንፈጥራለን።

ለ x በክልል (101): ከሆነ (x! = n):

f = ክፍት (("ዴስክቶፕ/safesetup/"+str (x)), "w+")

ረ ዝጋ ()

ሌላ

የይለፍ ቃል = hashlib.sha256 (የይለፍ ቃል).ሄክስዲስት ()

f = ክፍት (("ዴስክቶፕ/safesetup/"+str (x)), "w+")

f. ይፃፉ (የይለፍ ቃል)

ረ ዝጋ ()

አትም (n)

እውነተኛው ፋይል ኢንቲጀር n የሆነ ሁሉ ይባላል። ይህ ፋይል የ sha256 ስልተ ቀመሩን በመጠቀም ከታጠበ በኋላ የይለፍ ቃላችንን ይ containsል (ይህ ሃሽ ስልተ -ቀመር በስውር ምንዛሬዎች ፣ በተለይም በ Bitcoin ውስጥ በሰፊው ጥቅም ላይ ውሏል)።

ልክ እንደ የይለፍ ቃሉ አስፈላጊ ስለሆነ n ምን እንደሆነ ያስታውሱ (በኮንሶሉ ውስጥ ይታተማል)።

ለዝግጅት ፕሮግራማችን የሚያስፈልገን ያ ብቻ ነው ፣ ስለዚህ አሁን ወደ ምስጠራ/ዲክሪፕት ፕሮግራም እንሸጋገራለን።

ደረጃ 2 የኢንክሪፕሽን/ዲክሪፕት ፋይል

የምስጠራ/ዲክሪፕት ፋይል
የምስጠራ/ዲክሪፕት ፋይል
የምስጠራ/ዲክሪፕት ፋይል
የምስጠራ/ዲክሪፕት ፋይል
የምስጠራ/ዲክሪፕት ፋይል
የምስጠራ/ዲክሪፕት ፋይል

የዋናው ፋይል የማዋቀሪያ ክፍል ጥገኞቹን ከውጭ ያስገባል ፣ የገባውን የይለፍ ቃል ያጥባል ፣ እና የገባውን የፋይል ቁጥር በመጠቀም እውነተኛውን የይለፍ ቃል ሃሽ ያወጣል።

በመጀመሪያ ፣ ጥገኛዎች -

ከ sys ማስመጣት *ማስመጣት os

pyAesCrypt ያስመጡ

ሃሽሊቢን ማስመጣት

በመቀጠል ፣ የገባው የይለፍ ቃል ሃሽሽ -

የይለፍ ቃል = argv [1]. ኮድ ('utf-8') የይለፍ ቃል = hashlib.sha256 (የይለፍ ቃል).hexdigest ()

በመጨረሻም ፣ የታሸገ የይለፍ ቃል መልሶ ማግኘት -

file_key = str (argv [2]) ሃሽ = ክፍት (("ዴስክቶፕ/safesetup/" + file_key), ("r +"))። ያንብቡ ()

የኢንክሪፕሽን ፋይል ሁለተኛው ክፍል ሀሾቹን ያወዳድራል ፣ የንፅፅሩን ትክክለኛነት ይወስናል ፣ እና የመረጡት ፋይልዎን ኢንክሪፕት ለማድረግ ወይም ዲክሪፕት ለማድረግ የ AESCrypt Python ቤተ -መጽሐፍትን ይጠቀማል። ይህ በጣም ትልቅ የኮድ ቁራጭ ነው ፣ ግን እኔ እሰብረዋለሁ-

ከሆነ (የይለፍ ቃል == ሃሽ): ማተም (“የይለፍ ቃል ተቀባይነት አግኝቷል”)

ቋት መጠን = 64 * 1024

ክዋኔ = str (ግብዓት ("ፋይሎችን ሰርስረው እያወጡ ወይም ኢንክሪፕት ያደርጋሉ? (r ወይም e)"))

ከሆነ (ክወና == 'r'):

file_name = str (ግቤት ("ለማውጣት ፋይል:"))

pyAesCrypt.decryptFile ((file_name + ".aes") ፣ የፋይል_ስም ፣ የይለፍ ቃል ፣ ቋት መጠን)

os.remove ((file_name + ".aes"))

elif (ክወና == 'ሠ') ፦

file_name = str (ግቤት ("ለማመስጠር ፋይል:"))

pyAesCrypt.encryptFile (ፋይል_ስም ፣ (ፋይል_ስም + +.aes”) ፣ የይለፍ ቃል ፣ ቋት መጠን)

os.remove (የፋይል_ስም)

ሌላ

ማተም ("ስህተት: ትክክል ያልሆነ ግቤት")

ሌላ

ማተም ("መዳረሻ ተከልክሏል")

የመጀመሪያው ከሆነ መግለጫው የታሸጉ የይለፍ ቃሎች ይዛመዱ እንደሆነ ይወስናል። እነሱ ካደረጉ ፣ ከዚያ ፋይሎችን ኢንክሪፕት ማድረግ ወይም ኢንክሪፕት የተደረጉ ፋይሎችን መልሰው መፈለግዎን ይጠይቃል። በግቤትዎ ላይ በመመስረት የቀረበውን ፋይል ኢንክሪፕት ያደርጋል ወይም ዲክሪፕት ያደርጋል። የፋይሉን ስም እንዲሰጡ ሲጠየቁ ፋይሉ ልክ እንደ ፓይዘን ፕሮግራም በተመሳሳይ ማውጫ ውስጥ ካልሆነ መንገዱን መግለፅዎን ያረጋግጡ። ፕሮግራሙ ፋይሉን በቀድሞው ሁኔታ ይሰርዛል ፣ ኢንክሪፕት የተደረገበት.aes ፋይል ይተካዋል ፣ ወይም ዲክሪፕት በማድረግ እና በዋናው ፋይል ይተካዋል።

ለወደፊቱ ፣ የ Python OpenCV ቤተ -መጽሐፍትን በመጠቀም የፊት መታወቂያን ለማካተት ይህንን ማዘመን እችላለሁ ፣ ግን ለአሁን የይለፍ ቃላት በቂ ይሆናሉ።

ደረጃ 3 - የፋይሎች አሠራር

የማዋቀሪያ ፋይሉን ለማሄድ የሚከተሉትን ደረጃዎች ይከተሉ

1. ተርሚናል ውስጥ ይተይቡ

python3 ማውጫ/setupname.py ይለፍ ቃል (ማውጫ ፣ የማዋቀሪያ ስም እና የይለፍ ቃል በየራሳቸው እሴቶች በመተካት)

2. ተርሚናሉ የፋይል ቁጥርዎን ያወጣል። ይህንን ጠብቅ።

የኢንክሪፕሽን/ዲክሪፕት ፕሮግራምን ለማስኬድ የሚከተሉትን ደረጃዎች ይከተሉ

1. ተርሚናል ውስጥ ይተይቡ

python3 ማውጫ/filename.py የይለፍ ቃል filenumber (ማውጫ ፣ የፋይል ስም ፣ የይለፍ ቃል እና የፋይለሰቡን በየራሳቸው እሴቶች በመተካት)

2. ተርሚናሉ ከዚያ የይለፍ ቃልዎን ይቀበላል ወይም አይቀበልም። ውድቅ ከተደረገ ፣ እንደገና ይሞክሩ እና ትክክለኛዎቹን እሴቶች መተየብዎን ያረጋግጡ። አንዴ መዳረሻ ከተሰጠ ፣ ተርሚናሉ አንድ ፋይል ኢንክሪፕት ማድረግ ወይም ፋይል ሰርስሮ ማውጣት ይፈልግዎታል። ፋይልን ኢንክሪፕት ለማድረግ ፣ e ን ይተይቡ እና ኢንክሪፕት የተደረገ ፋይልን ለማግኘት ፣ r ን ይተይቡ።

3. ከዚያ የፋይሉን ስም እንዲያቀርቡ ይጠየቃሉ። ያስታውሱ የፋይሉን ማውጫ እንዲሁም ስሙን ፣ እና እንዲሁም የፋይል ቅጥያውን። ሆኖም ፣ አንድ ፋይል ዲክሪፕት እያደረጉ ከሆነ ፣ ኮዱ የዚያ መለያ ስለሆነ የቅጥያውን.aes ክፍል አይፃፉ።

4. ፕሮግራሙ ከዚያ የቀረበውን ፋይል ኢንክሪፕት ያደርጋል ወይም ዲክሪፕት ያደርጋል ፣ እና ፋይሉን በቀድሞው ሁኔታ ይሰርዛል (ኢንክሪፕት የተደረገ ወይም ዲክሪፕት የተደረገውን ፋይል ይዞ ይቆያል)።

ቮላ! ይህንን ወደ አስተማሪው በጣም ስላደረጉት እናመሰግናለን ፣ የኮድ ትምህርቶችን ማንበብ በጣም አዝናኝ ነገር እንዳልሆነ አውቃለሁ። የ Python ፋይሎች በዚህ ደረጃ ውስጥ ተዘግተዋል ፣ ለእዚህ ምት መስጠት ለሚፈልጉ። በድጋሚ ፣ ለንባብ አመሰግናለሁ ፣ እና ለወደፊቱ የኮድ ሙከራዎችዎ መልካም ዕድል እመኝልዎታለሁ።

የሚመከር: