Sisällysluettelo:

Python Security Encryption/Decryption Software: 3 vaihetta
Python Security Encryption/Decryption Software: 3 vaihetta

Video: Python Security Encryption/Decryption Software: 3 vaihetta

Video: Python Security Encryption/Decryption Software: 3 vaihetta
Video: Encryption program in Python 🔒 2024, Marraskuu
Anonim
Python Security Encryption/Decryption -ohjelmisto
Python Security Encryption/Decryption -ohjelmisto
Python Security Encryption/Decryption -ohjelmisto
Python Security Encryption/Decryption -ohjelmisto

Tässä Instructable -ohjelmassa näytän sinulle, kuinka yksinkertaisen Pythonin avulla voit pitää tiedostosi suojattuna alan standardin AES: n avulla.

Vaatimukset:

- Python 3.7

- PyAesCrypt -kirjasto

- hashlib -kirjasto

Jos sinulla ei ole näitä kirjastoja, voit asentaa ne helposti kirjoittamalla:

pip3 asenna hashlib

pip3 asenna PyAesCrypt

päätelaitteessa (tai CMD)

Sinulla pitäisi olla jo nämä:

- satunnainen kirjasto

- os -kirjasto

- järjestelmäkirjasto

Käytän OS X: ää, mutta sillä ei pitäisi olla liikaa väliä, lukuun ottamatta viiltojen suuntaa tiedostopolkuissa (OS X: /, Windows:)

Huomaa: Joidenkin häiriöiden vuoksi koodin sisennykset eivät jostain syystä näy. Näytetyssä koodissa ei siis ole sisennyksiä, mutta ne ovat läsnä lopussa olevissa Python -tiedostoissa ja liitteenä olevissa kuvissa. Älä vain ota koodia suoraan näytetystä tekstistä, koska se ei toimi sisennysten puutteen vuoksi

Jos olet asentanut kaikki riippuvuudet, siirry vaiheeseen 1.

Vaihe 1: Asennustiedoston kirjoittaminen

Asennustiedoston kirjoittaminen
Asennustiedoston kirjoittaminen
Asennustiedoston kirjoittaminen
Asennustiedoston kirjoittaminen
Asennustiedoston kirjoittaminen
Asennustiedoston kirjoittaminen
Asennustiedoston kirjoittaminen
Asennustiedoston kirjoittaminen

Yksi tekijöistä, jotka tekevät tästä niin suojatun, on hajautusten käyttö salasanan tarkistamiseen. Asennustiedosto (soitan minun setupsafe.py) tulee:

- Luo kansio ja nuketiedostot salasanalle

- Aseta salasana

- Aseta tiedoston numero

- Häivytä salasana

Ensinnäkin tuomme riippuvuussuhteemme:

sys -tuonnista *

tuonti

tuoda satunnaisesti

tuoda hashlibia

Seuraavaksi luomme kansion salasanan tiivisteelle ja nuketiedostoille:

kokeile: jos ei os.path.exists ('desktop/safesetup'):

os.mkdir ('desktop/safesetup/')

paitsi OSVirhe:

print ("Virhe kansion luomisessa")

Tämä koodi luo kansion nimeltä safesetup (ellei sitä ole jo olemassa).

Tämän jälkeen aiomme asettaa salasanan ja luoda satunnaisluvun välillä 1 ja 100 tapaa navigoida nuketiedostoissa:

yleinen salasana salasana = argv [1].encode ('utf-8')

n = random.randint (1, 101)

Nyt kun meillä on salasanamme ja tiedostonumeromme, luomme 99 nuketiedostoa turvallisen asennuksen sisälle ja yhden todellisen tiedoston, joka sisältää salasanan tiivisteen:

x: lle alueella (101): jos (x! = n):

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

f. sulje ()

muu:

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

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

f.write (salasana)

f. sulje ()

tulosta (n)

Todellista tiedostoa kutsutaan riippumatta kokonaisluvusta n. Tämä tiedosto sisältää salasanamme sen jälkeen, kun se on tiivistetty sha256 -algoritmilla (tätä tiivistealgoritmia käytetään laajalti kryptovaluutoissa, erityisesti Bitcoinissa).

Muista, mikä on n (se tulostetaan konsoliin), koska se on yhtä tärkeä kuin salasana.

Se on kaikki mitä tarvitsemme asennusohjelmamme, joten siirrymme nyt salaus-/salauksenpurkuohjelmaan.

Vaihe 2: Salaus-/salauksenpurkutiedosto

Salaus-/salauksenpurkutiedosto
Salaus-/salauksenpurkutiedosto
Salaus-/salauksenpurkutiedosto
Salaus-/salauksenpurkutiedosto
Salaus-/salauksenpurkutiedosto
Salaus-/salauksenpurkutiedosto

Päätiedoston asennusosa tuo riippuvuudet, tiivistää syötetyn salasanan ja hakee todellisen salasanan tiivisteen syötetyn tiedostonumeron avulla.

Ensinnäkin riippuvuudet:

sys tuonnista *tuontiosastosta

Tuo pyAesCrypt

tuoda hashlibia

Seuraavaksi syötetyn salasanan hajautus:

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

Lopuksi tiivistetyn salasanan haku:

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

Salatiedoston toisessa osassa verrataan hajautuksia, määritetään vertailun todenperäisyys ja käytetään AESCrypt -python -kirjastoa salaamaan tai purkamaan valitsemasi tiedosto. Tämä on melko suuri koodinpala, mutta aion jakaa sen:

if (password == hash): print ("Salasana hyväksytty")

bufferSize = 64 * 1024

operaatio = str (input ("Haetko tai salaatko tiedostoja? (r tai e)"))

jos (operaatio == 'r'):

file_name = str (input ("Haettava tiedosto:"))

pyAesCrypt.decryptFile ((tiedoston_nimi + ".aes"), tiedoston_nimi, salasana, puskurikoko)

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

elif (operaatio == 'e'):

file_name = str (input ("Salatava tiedosto:"))

pyAesCrypt.encryptFile (tiedoston_nimi, (tiedoston_nimi + ".aes"), salasana, puskurikoko)

os.remove (tiedoston_nimi)

muu:

print ("Virhe: virheellinen syöttö")

muu:

tulosta ("Pääsy estetty")

Ensimmäinen if -lause määrittää, vastaavatko tiivistetyt salasanat. Jos he tekevät niin, se kysyy edelleen, haluatko salata tiedostoja vai hakea salattuja tiedostoja. Syötöstäsi riippuen se joko salaa tai purkaa annetun tiedoston. Kun sinua pyydetään antamaan tiedoston nimi, muista määrittää polku, ellei tiedosto ole samassa hakemistossa kuin python -ohjelma. Ohjelma poistaa tiedoston aiemmassa tilassaan ja korvaa sen salatulla.aes -tiedostolla tai purkaa sen salauksen ja korvaa sen alkuperäisellä tiedostolla.

Jatkossa saatan päivittää tämän sisältämään kasvojentunnistuksen Python OpenCV -kirjastoa käyttäen, mutta toistaiseksi riittää salasanat.

Vaihe 3: Tiedostojen käyttö

Suorita asennustiedosto seuraavasti:

1. Kirjoita terminaali:

python3 -hakemiston/setupname.py -salasana (hakemiston, asennuksen nimen ja salasanan korvaaminen vastaavilla arvoilla)

2. Pääte lähettää tiedostonumerosi. Pidä tämä.

Voit suorittaa salaus-/salauksenpurkuohjelman seuraavasti:

1. Kirjoita terminaali:

python3 -hakemisto/tiedostonimi.py salasanan tiedostonumero (hakemiston, tiedostonimen, salasanan ja tiedostonumeron korvaaminen vastaavilla arvoilla)

2. Päätelaite joko hyväksyy tai hylkää salasanasi. Jos se hylätään, yritä uudelleen ja varmista, että kirjoitat oikeat arvot. Pääsyn päätyttyä päätelaite kysyy sinulta, haluatko salata tiedoston vai hakea sen. Jos haluat salata tiedoston, kirjoita e ja hae salattu tiedosto kirjoittamalla r.

3. Sinua pyydetään antamaan tiedostonimi. Muista antaa tiedoston hakemisto sekä nimi ja tiedostopääte. Jos kuitenkin avaat tiedoston salausta, älä kirjoita laajennuksen.aes -osaa, koska koodi selittää sen.

4. Ohjelma sitten salaa tai purkaa annetun tiedoston ja poistaa tiedoston aiemmassa tilassaan (säilyttäen salatun tai salatun tiedoston).

Voila! Kiitos, että teit sen niin opettavaiseksi, tiedän, että koodiohjeiden lukeminen ei ole kaikkein viihdyttävintä. Python -tiedostot on liitetty tähän vaiheeseen niille teistä, jotka haluavat kokeilla tätä. Vielä kerran kiitos lukemisesta ja toivotan onnea tuleviin koodauspyrkimyksiin.

Suositeltava: