Talaan ng mga Nilalaman:

Python Security Encryption / Decryption Software: 3 Mga Hakbang
Python Security Encryption / Decryption Software: 3 Mga Hakbang

Video: Python Security Encryption / Decryption Software: 3 Mga Hakbang

Video: Python Security Encryption / Decryption Software: 3 Mga Hakbang
Video: What Encryption Software Do You Recommend? 2024, Nobyembre
Anonim
Python Security Encryption / Decryption Software
Python Security Encryption / Decryption Software
Python Security Encryption / Decryption Software
Python Security Encryption / Decryption Software

Sa Instructable na ito ay ipapakita ko sa iyo kung paano sa ilang simpleng Python, mapapanatili mong ligtas ang iyong mga file gamit ang pamantayang AES sa industriya.

Mga Kinakailangan:

- Python 3.7

- PyAesCrypt library

- hashlib library

Kung wala kang mga library na ito, madali kang makakapag-install sa pamamagitan ng pagta-type:

pip3 i-install ang hashlib

pip3 i-install ang PyAesCrypt

sa terminal (o CMD)

Dapat ay mayroon ka ng mga ito:

- random library

- os library

- system library

Gumagamit ako ng OS X, ngunit hindi dapat masyadong mahalaga, maliban sa direksyon ng mga slash sa mga file path (OS X: /, Windows: )

Mangyaring tandaan: Dahil sa ilang glitch, ang mga indentation sa code ay hindi ipinapakita sa ilang kadahilanan. Dahil dito ay walang mga indentasyon sa ipinakitang code, subalit naroroon ang mga ito sa mga file ng Python na na-attach ko sa dulo, at sa mga nakapaloob na larawan. Huwag lamang kunin ang code nang direkta mula sa ipinakitang teksto, sapagkat hindi ito gagana dahil sa kakulangan ng mga indentasyon

Kung na-install mo ang lahat ng mga dependance, magpatuloy tayo sa Hakbang 1.

Hakbang 1: Pagsulat ng Setup File

Pagsusulat ng Setup File
Pagsusulat ng Setup File
Pagsusulat ng Setup File
Pagsusulat ng Setup File
Pagsusulat ng Setup File
Pagsusulat ng Setup File
Pagsusulat ng Setup File
Pagsusulat ng Setup File

Isa sa mga kadahilanan na ginagawang ligtas ito ay ang paggamit ng mga hash upang suriin ang password. Ang file ng pag-setup (tumatawag ako sa aking setupsafe.py) ay pupunta sa:

- Lumikha ng isang folder at dummy file para sa password

- Itakda ang password

- Itakda ang numero ng file

- Hash ang password

Una, mag-a-import kami ng aming mga dependance:

mula sa sys import *

import os

mag-import ng random

import hashlib

Susunod na lilikha kami ng isang folder upang mailagay ang hash ng password at ang mga dummy file:

subukan: kung hindi os.path.exists ('desktop / safesetup'):

os.mkdir ('desktop / safesetup /')

maliban sa OSError:

i-print ("Error sa paglikha ng folder")

Lilikha ang code na ito ng isang folder na tinatawag na safesetup (maliban kung mayroon na ito).

Pagkatapos nito, itatakda namin ang password, at bubuo ng isang random na numero sa pagitan ng 1 at 100 bilang aming paraan upang mag-navigate sa mga dummy file:

pandaigdigang passwordpassword = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Ngayong mayroon kami ng aming password at numero ng aming file, lilikha kami ng 99 mga dummy file sa loob ng pag-save, at isang tunay na file na maglalaman ng aming hash ng password:

para sa x sa saklaw (101): kung (x! = n):

f = bukas (("desktop / safesetup /" + str (x)), "w +")

f.close ()

iba pa:

password = hashlib.sha256 (password).hexdigest ()

f = bukas (("desktop / safesetup /" + str (x)), "w +")

f.write (password)

f.close ()

i-print (n)

Ang totoong file ay tinatawag na kung ano man ang integer n. Naglalaman ang file na ito ng aming password, pagkatapos na ma-hash gamit ang sha256 algorithm (ang hash algorithm na ito ay malawakang ginagamit sa mga cryptocurrency, lalo na ang Bitcoin).

Tandaan kung ano ang n (mai-print ito sa console), dahil ito ay kasing kahalaga ng password.

Iyon lang ang kailangan namin para sa aming programa sa pag-set up, kaya't lilipat kami ngayon sa programa ng pag-encrypt / decryption.

Hakbang 2: Ang Encryption / decryption File

Ang Encryption / decryption File
Ang Encryption / decryption File
Ang Encryption / decryption File
Ang Encryption / decryption File
Ang Encryption / decryption File
Ang Encryption / decryption File

Ang seksyon ng pag-setup ng pangunahing file ay nag-i-import ng mga dependance, na-hash ang naka-input na password, at kinukuha ang tunay na hash ng password gamit ang naka-input na numero ng file.

Una, ang mga dependance:

mula sa sys import * import os

i-import ang pyAesCrypt

import hashlib

Susunod, ang pag-hash ng naka-input na password:

password = argv [1].encode ('utf-8') password = hashlib.sha256 (password).hexdigest ()

Sa wakas, ang hashed pagkuha ng password:

file_key = str (argv [2]) hash = open (("desktop / safesetup /" + file_key), ("r +")). basahin ()

Ang ikalawang seksyon ng file ng pag-encrypt ay naghahambing ng mga hash, tinutukoy ang katotohanan ng paghahambing, at ginagamit ang AESCrypt python library upang i-encrypt o i-decrypt ang iyong file na pinili. Ito ay isang malaking piraso ng code, ngunit babaliin ko ito:

kung (password == hash): i-print ("Tinanggap ang password")

bufferSize = 64 * 1024

operasyon = str (input ("Kinukuha mo ba o naka-encrypt ang mga file? (r o e)"))

kung (pagpapatakbo == 'r'):

file_name = str (input ("File upang makuha:"))

pyAesCrypt.decryptFile ((file_name + ".aes"), file_name, password, bufferSize)

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

elif (pagpapatakbo == 'e'):

file_name = str (input ("File to encrypt:"))

pyAesCrypt.encryptFile (file_name, (file_name + ".aes"), password, bufferSize)

os.remove (file_name)

iba pa:

i-print ("Error: Maling input")

iba pa:

i-print ("Tinanggihan ang pag-access")

Tinutukoy ng una kung pahayag kung tumutugma ang mga hash password. Kung gagawin nila ito, nagpapatuloy itong magtanong kung nais mong i-encrypt ang mga file o kunin ang mga naka-encrypt na file. Nakasalalay sa iyong pag-input, mai-encrypt o mai-decrypt nito ang ibinigay na file. Kapag sinenyasan na ibigay ang pangalan ng file, tiyaking tukuyin ang landas maliban kung ang file ay nasa parehong direktoryo ng python program. Tinatanggal ng programa ang file sa dating estado nito, pinapalitan ito ng isang naka-encrypt na.aes na file, o na-decrypt ito at pinalitan ito ng orihinal na file.

Sa hinaharap, maaari kong i-update ito upang isama ang pagkilala sa mukha gamit ang Python OpenCV library, ngunit sa ngayon ang mga password ay kailangang sapat.

Hakbang 3: Pagpapatakbo ng Mga File

Upang patakbuhin ang setup file, sundin ang mga hakbang na ito:

1. Mag-type sa terminal:

direktoryo ng python3 / setupname.py password (pinapalitan ang direktoryo, setupname, at password sa kani-kanilang halaga)

2. Ang terminal ay maglalabas ng iyong numero ng file. Itago mo to.

Upang patakbuhin ang programa ng pag-encrypt / decryption, sundin ang mga hakbang na ito:

1. Mag-type sa terminal:

direktoryo ng python3 / filename.py password filenumber (pinapalitan ang direktoryo, filename, password, at filenumber sa kani-kanilang halaga)

2. Tatanggapin o tatanggihan ng terminal ang iyong password. Kung tinanggihan, subukang muli at tiyaking nagta-type ka sa mga tamang halaga. Kapag naibigay na ang pag-access, tatanungin ka ng terminal kung nais mong i-encrypt ang isang file o kunin ang isang file. Upang mag-encrypt ng isang file, i-type ang e, at upang makuha ang isang naka-encrypt na file, i-type ang r.

3. Hihilingin sa iyo na ibigay ang pangalan ng file. Tandaan na ibigay ang direktoryo ng file pati na rin ang pangalan, at pati na rin ang file extension. Gayunpaman, kung nag-decrypt ka ng isang file, huwag i-type ang bahagi ng.aes ng extension, bilang mga code ng account para doon.

4. Pagkatapos ay i-encrypt o mai-decryt ng programa ang ibinigay na file, at tinatanggal ang file sa dating estado nito (pinapanatili ang naka-encrypt o na-decrypt na file).

Voila! Salamat sa paggawa nito sa itinuturo, alam kong ang pagbabasa ng mga tutorial ng code ay hindi ang pinaka nakakaaliw na bagay. Ang mga file ng python ay nakapaloob sa hakbang na ito, para sa iyo na nais bigyan ito ng shot. Muli, salamat sa pagbabasa, at hinihiling ko sa iyo ang pinakamahusay na kapalaran sa iyong mga pagsisikap sa pag-coding sa hinaharap.

Inirerekumendang: