Sisällysluettelo:
- Vaihe 1: Asennustiedoston kirjoittaminen
- Vaihe 2: Salaus-/salauksenpurkutiedosto
- Vaihe 3: Tiedostojen käyttö
Video: Python Security Encryption/Decryption Software: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
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
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
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:
Pizero Motion Detect Webcam Security System: 3 vaihetta
Pizero Motion Detect Webcam Security System: Tämä järjestelmä käyttää pizeroa, wifi -sovitinta ja vanhaa verkkokameraa mukautetussa tulitikkurasiassa. Se tallentaa liiketunnistusvideoita 27 kuvaa sekunnissa kaikista merkittävistä liikkeistä ajotieltäni. Sen jälkeen leikkeet ladataan dropbox -tilille. Voit myös tarkastella lokeja ja
ALHAISET HANKKEET VARASTOINTILAITTEET (Pi Home Security): 7 vaihetta
ALHAISET HAKUVAROTUKSET (Pi Home Security): Järjestelmä on suunniteltu havaitsemaan tunkeutuminen (luvaton pääsy) rakennukseen tai muille alueille. Tätä projektia voidaan käyttää asuin-, liike-, teollisuus- ja sotilaskiinteistöissä suojaamaan murtovarkauksilta tai omaisuusvahinkoilta
TF03 Laser Home Security -hälytys: 5 vaihetta
TF03 Laser Home Security Alarm: Yhteiskunnan kehittyessä ihmiset kiinnittävät enemmän huomiota turvallisuuteen. Perinteinen turvallisuus, jota turvahenkilöstön jatkuva partiointi suorittaa, ei sovellu yleisölle korkeiden hintojen vuoksi
Cyberpunk Multi-Sensor for Security: 8 vaihetta
Cyberpunk Multi-Sensor for Security: Päätin tehdä turva-multisensorin sen jälkeen, kun meidät ryöstettiin asuessamme Ecuadorin viidakossa. Asumme nyt toisessa kaupungissa, mutta halusin tapaa saada ilmoituksia kodin toiminnasta. Olen nähnyt paljon kytkettyjä antureita, jotka eivät olleet
Arduino Security 3G/GPRS -sähkökamera, jossa on liiketunnistus: 4 vaihetta
Arduino Security 3G/GPRS -sähköpostikamera, jossa on liiketunnistus: Tässä oppaassa haluaisin kertoa yhdestä versiosta liiketunnistimella varustetun turvallisuusvalvontajärjestelmän rakentamisesta ja valokuvien lähettämisestä postilaatikkoon 3G/GPRS -suojan kautta.Tämä artikkeli perustuu muut ohjeet: ohje 1 ja ohje