İçindekiler:

Python Güvenlik Şifreleme/Şifre Çözme Yazılımı: 3 Adım
Python Güvenlik Şifreleme/Şifre Çözme Yazılımı: 3 Adım

Video: Python Güvenlik Şifreleme/Şifre Çözme Yazılımı: 3 Adım

Video: Python Güvenlik Şifreleme/Şifre Çözme Yazılımı: 3 Adım
Video: Python ile 1 Dakikada Bütün Şifreleri Kır 2024, Kasım
Anonim
Python Güvenlik Şifreleme/Şifre Çözme Yazılımı
Python Güvenlik Şifreleme/Şifre Çözme Yazılımı
Python Güvenlik Şifreleme/Şifre Çözme Yazılımı
Python Güvenlik Şifreleme/Şifre Çözme Yazılımı

Bu Eğitilebilir Kitapta size bazı basit Python ile endüstri standardı AES kullanarak dosyalarınızı nasıl güvende tutabileceğinizi göstereceğim.

Gereksinimler:

- Python 3.7

- PyAesCrypt kitaplığı

- hashlib kütüphanesi

Bu kitaplıklara sahip değilseniz, şunu yazarak kolayca kurabilirsiniz:

pip3 hashlib'i kurun

pip3 PyAesCrypt'i kurun

terminalde (veya CMD)

Bunlara zaten sahip olmalısınız:

- rastgele kitaplık

- işletim sistemi kitaplığı

- sistem kitaplığı

OS X kullanıyorum, ancak dosya yollarındaki eğik çizgilerin yönü dışında çok fazla önemli olmamalı (OS X: /, Windows: )

Lütfen dikkat: Bazı aksaklıklar nedeniyle, koddaki girintiler herhangi bir nedenle görünmüyor. Sonuç olarak görüntülenen kodda girintiler olmayacak, ancak sonunda eklediğim Python dosyalarında ve ekteki resimlerde mevcutlar. Girinti olmaması nedeniyle çalışmadığından, kodu doğrudan görüntülenen metinden almayın

Tüm bağımlılıkları yüklediyseniz, Adım 1'e geçelim.

Adım 1: Kurulum Dosyasını Yazma

Kurulum Dosyasını Yazma
Kurulum Dosyasını Yazma
Kurulum Dosyasını Yazma
Kurulum Dosyasını Yazma
Kurulum Dosyasını Yazma
Kurulum Dosyasını Yazma
Kurulum Dosyasını Yazma
Kurulum Dosyasını Yazma

Bunu bu kadar güvenli kılan faktörlerden biri, parolayı kontrol etmek için karmaların kullanılmasıdır. Kurulum dosyası (benimki setupsafe.py'yi arıyorum) şöyle olacak:

- Parola için bir klasör ve sahte dosyalar oluşturun

- Şifreyi ayarlayın

- Dosya numarasını ayarlayın

- Şifreyi karıştır

Öncelikle, bağımlılıklarımızı içe aktaracağız:

sys import'dan *

işletim sistemini içe aktar

rastgele içe aktar

hashlib'i içe aktar

Ardından, parola karmasını ve sahte dosyaları barındıracak bir klasör oluşturacağız:

deneyin: os.path.exists değilse('desktop/safesetup'):

os.mkdir('desktop/safesetup/')

OSError hariç:

print("Klasör oluşturma hatası")

Bu kod, safesetup adlı bir klasör oluşturacaktır (zaten yoksa).

Bundan sonra, şifreyi ayarlayacağız ve sahte dosyalarda gezinme yolumuz olarak 1 ile 100 arasında rastgele bir sayı üreteceğiz:

global parolaparola = argv[1].encode('utf-8')

n = rastgele.randint(1, 101)

Artık parolamız ve dosya numaramız olduğuna göre, safesetup içinde 99 sahte dosya ve parola karmamızı içeren bir gerçek dosya oluşturacağız:

x aralığında(101): if(x != n):

f = open(("masaüstü/güvenli kurulum/"+str(x)), "w+")

f.kapat()

Başka:

parola = hashlib.sha256(parola).hexdigest()

f = open(("masaüstü/güvenli kurulum/"+str(x)), "w+")

f.write(şifre)

f.kapat()

yazdır(n)

Gerçek dosya, n tamsayısı ne olursa olsun denir. Bu dosya, sha256 algoritması kullanılarak hash edildikten sonra şifremizi içerir (bu hash algoritması kripto para birimlerinde, özellikle Bitcoin'de yaygın olarak kullanılır).

Şifre kadar önemli olduğu için n'nin ne olduğunu hatırlayın (konsolda yazdırılacaktır).

Kurulum programımız için ihtiyacımız olan tek şey bu, bu yüzden şimdi şifreleme/şifre çözme programına geçeceğiz.

2. Adım: Şifreleme/şifre çözme Dosyası

Şifreleme/şifre çözme Dosyası
Şifreleme/şifre çözme Dosyası
Şifreleme/şifre çözme Dosyası
Şifreleme/şifre çözme Dosyası
Şifreleme/şifre çözme Dosyası
Şifreleme/şifre çözme Dosyası

Ana dosyanın kurulum bölümü, bağımlılıkları içe aktarır, girilen şifreyi hash eder ve girilen dosya numarasını kullanarak gerçek şifre karmasını alır.

İlk olarak, bağımlılıklar:

sys import *import işletim sisteminden

pyAesCrypt'i içe aktar

hashlib'i içe aktar

Ardından, girilen parolanın karma değeri:

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

Son olarak, karma parola alımı:

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

Şifreleme dosyasının ikinci bölümü, karmaları karşılaştırır, karşılaştırmanın doğruluğunu belirler ve seçtiğiniz dosyanızı şifrelemek veya şifresini çözmek için AESCrypt python kitaplığını kullanır. Bu oldukça büyük bir kod yığını, ancak onu parçalayacağım:

if(şifre == hash): print("Şifre kabul edildi")

arabellekBoyutu = 64 * 1024

operasyon = str(input("Dosyaları alıyor musunuz veya şifreliyor musunuz? (r veya e) "))

if(işlem == 'r'):

dosya_adı = str(input("Alınacak dosya: "))

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

os.remove((dosya_adı + ".aes"))

elif(işlem == 'e'):

dosya_adı = str(input("Şifrelenecek dosya: "))

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

os.remove(dosya_adı)

Başka:

print("Hata:Yanlış giriş")

Başka:

print("Erişim engellendi")

İlk if ifadesi, karma parolaların eşleşip eşleşmediğini belirler. Bunu yaparlarsa, dosyaları şifrelemek mi yoksa şifreli dosyaları almak mı istediğinizi sormaya devam eder. Girişinize bağlı olarak, sağlanan dosyayı şifreleyecek veya şifresini çözecektir. Dosyanın adını vermeniz istendiğinde, dosya python programıyla aynı dizinde değilse yolu belirttiğinizden emin olun. Program dosyayı önceki durumunda siler, yerine şifreli bir.aes dosyası koyar veya şifresini çözer ve orijinal dosya ile değiştirir.

Gelecekte, Python OpenCV kitaplığını kullanarak yüz tanımayı içerecek şekilde bunu güncelleyebilirim, ancak şimdilik parolaların yeterli olması gerekecek.

Adım 3: Dosyaların Çalıştırılması

Kurulum dosyasını çalıştırmak için şu adımları izleyin:

1. Terminali yazın:

python3 directory/setupname.py parolası (dizin, kurulum adı ve parolanın ilgili değerleriyle değiştirilmesi)

2. Terminal dosya numaranızı çıkaracaktır. Bunu sakla.

Şifreleme/şifre çözme programını çalıştırmak için şu adımları izleyin:

1. Terminali yazın:

python3 directory/filename.py parola dosya numarası (dizin, dosya adı, parola ve dosya numarasını ilgili değerleriyle değiştirir)

2. Terminal daha sonra şifrenizi kabul edecek veya reddedecektir. Reddedilirse tekrar deneyin ve doğru değerleri girdiğinizden emin olun. Erişim sağlandığında, terminal size bir dosyayı şifrelemek mi yoksa bir dosyayı almak mı istediğinizi soracaktır. Bir dosyayı şifrelemek için e yazın ve şifrelenmiş bir dosyayı almak için r yazın.

3. Daha sonra dosya adını vermeniz istenecektir. Dosyanın dizinini, adını ve ayrıca dosya uzantısını sağlamayı unutmayın. Ancak, bir dosyanın şifresini çözüyorsanız, kod bunu hesaba kattığından, uzantının.aes bölümünü yazmayın.

4. Program daha sonra sağlanan dosyayı şifreler veya şifresini çözer ve dosyayı önceki durumunda siler (şifreli veya şifresi çözülmüş dosyayı korur).

İşte! Bunu öğretilebilir hale getirdiğiniz için teşekkürler, kod eğitimlerini okumanın en eğlenceli şey olmadığını biliyorum. Bunu denemek isteyenler için python dosyaları bu adımda eklenmiştir. Bir kez daha, okuduğunuz için teşekkürler ve gelecekteki kodlama çabalarınızda size iyi şanslar diliyorum.

Önerilen: