Isi kandungan:

Perisian Penyulitan / Penyahsulitan Keselamatan Python: 3 Langkah
Perisian Penyulitan / Penyahsulitan Keselamatan Python: 3 Langkah

Video: Perisian Penyulitan / Penyahsulitan Keselamatan Python: 3 Langkah

Video: Perisian Penyulitan / Penyahsulitan Keselamatan Python: 3 Langkah
Video: Kriptografi Bahagian 1 - Reverse Dan Atbash Cipher, Ralat Buku Teks Dan Kepentingan Kriptografi 2024, November
Anonim
Perisian Penyulitan / Penyahsulitan Keselamatan Python
Perisian Penyulitan / Penyahsulitan Keselamatan Python
Perisian Penyulitan / Penyahsulitan Keselamatan Python
Perisian Penyulitan / Penyahsulitan Keselamatan Python

Dalam Instructable ini saya akan menunjukkan kepada anda bagaimana dengan beberapa Python sederhana, anda dapat menyimpan fail anda dengan selamat menggunakan AES standard industri.

Keperluan:

- Python 3.7

- Perpustakaan PyAesCrypt

- perpustakaan hashlib

Sekiranya anda tidak mempunyai perpustakaan ini, anda boleh memasang dengan mudah dengan menaip:

pip3 memasang hashlib

pip3 pasang PyAesCrypt

di terminal (atau CMD)

Anda semestinya mempunyai ini:

- perpustakaan rawak

- perpustakaan os

- perpustakaan sistem

Saya menggunakan OS X, tetapi tidak boleh terlalu penting, kecuali untuk arah garis miring di jalur fail (OS X: /, Windows:)

Harap maklum: Kerana beberapa kesalahan, lekukan dalam kod tidak ditunjukkan untuk beberapa sebab. Oleh itu, tidak akan ada lekukan pada kod yang dipaparkan, namun terdapat dalam fail Python yang telah saya lampirkan pada akhir, dan dalam gambar yang disertakan. Jangan ambil kod langsung dari teks yang dipaparkan, kerana tidak akan berfungsi kerana kekurangan lekukan

Sekiranya anda mempunyai semua tanggungan yang terpasang, mari beralih ke Langkah 1.

Langkah 1: Menulis Fail Persediaan

Menulis Fail Persediaan
Menulis Fail Persediaan
Menulis Fail Persediaan
Menulis Fail Persediaan
Menulis Fail Persediaan
Menulis Fail Persediaan
Menulis Fail Persediaan
Menulis Fail Persediaan

Salah satu faktor yang menjadikannya begitu selamat adalah penggunaan hash untuk memeriksa kata laluan. Fail persediaan (saya memanggil saya setupsafe.py) akan:

- Buat folder dan fail palsu untuk kata laluan

- Tetapkan kata laluan

- Tetapkan nombor fail

- Hash kata laluan

Pertama, kami akan mengimport tanggungan kami:

dari sys import *

import os

import secara rawak

import hashlib

Selanjutnya kita akan membuat folder untuk menyimpan hash kata laluan dan fail palsu:

cuba: jika tidak os.path.exists ('desktop / safesetup'):

os.mkdir ('desktop / safesetup /')

kecuali OSError:

cetak ("Ralat semasa membuat folder")

Kod ini akan membuat folder bernama safesetup (melainkan sudah ada).

Selepas ini, kami akan menetapkan kata laluan, dan menghasilkan nombor rawak antara 1 dan 100 sebagai cara kami menavigasi fail palsu:

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

n = rawak.randint (1, 101)

Setelah kami mempunyai kata laluan dan nombor fail kami, kami akan membuat 99 fail palsu di dalam peti keselamatan, dan satu fail sebenar yang akan mengandungi hash kata laluan kami:

untuk x dalam julat (101): jika (x! = n):

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

f. tutup ()

lain:

kata laluan = hashlib.sha256 (kata laluan). hexdigest ()

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

f. menulis (kata laluan)

f. tutup ()

cetak (n)

Fail sebenar dipanggil apa sahaja bilangan bulat n. Fail ini mengandungi kata laluan kami, setelah dicincang menggunakan algoritma sha256 (algoritma hash ini digunakan secara meluas dalam cryptocurrency, terutamanya Bitcoin).

Ingat apa itu (ia akan dicetak di konsol), kerana sama pentingnya dengan kata laluan.

Itu yang kami perlukan untuk program penyediaan kami, jadi kami sekarang akan beralih ke program penyulitan / penyahsulitan.

Langkah 2: Fail Penyulitan / Penyahsulitan

Fail Penyulitan / Penyahsulitan
Fail Penyulitan / Penyahsulitan
Fail Penyulitan / Penyahsulitan
Fail Penyulitan / Penyahsulitan
Fail Penyulitan / Penyahsulitan
Fail Penyulitan / Penyahsulitan

Bahagian penyediaan fail utama mengimport pergantungan, mencuci kata laluan yang dimasukkan, dan mengambil hash kata laluan sebenar menggunakan nombor fail yang dimasukkan.

Pertama, tanggungan:

dari sys import * import os

import pyAesCrypt

import hashlib

Seterusnya, hashing kata laluan yang dimasukkan:

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

Akhirnya, pengambilan kata laluan dicincang:

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

Bahagian kedua fail enkripsi membandingkan hash, menentukan kebenaran perbandingan, dan menggunakan pustaka python AESCrypt untuk menyulitkan atau menyahsulit fail pilihan anda. Ini adalah bahagian kod yang agak besar, tetapi saya akan memecahkannya:

if (kata laluan == hash): cetak ("Kata laluan diterima")

bufferSize = 64 * 1024

operasi = str (input ("Adakah anda mengambil atau menyulitkan fail? (r atau e)"))

jika (operasi == 'r'):

file_name = str (masukan ("Fail untuk mengambil:"))

pyAesCrypt.decryptFile ((name_name + ".aes"), nama_file, kata laluan, bufferSize)

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

elif (operasi == 'e'):

file_name = str (input ("Fail untuk disulitkan:"))

pyAesCrypt.encryptFile (nama_file, (nama_file + ".aes"), kata laluan, ukuran penyangga)

os.remove (nama_fail)

lain:

cetak ("Ralat: Input tidak betul")

lain:

cetak ("Akses ditolak")

Pernyataan if pertama menentukan sama ada kata laluan yang dicincang sesuai. Sekiranya mereka melakukannya, ia kemudian bertanya jika anda mahu menyulitkan fail atau mengambil fail yang disulitkan. Bergantung pada input anda, ia akan menyulitkan atau menyahsulitkan fail yang disediakan. Ketika diminta untuk memberikan nama file, pastikan untuk menentukan jalan kecuali file tersebut berada di direktori yang sama dengan program python. Program ini menghapus fail tersebut dalam keadaan sebelumnya, menggantinya dengan fail.aes yang disulitkan, atau menyahsulitkannya dan menggantinya dengan fail asal.

Di masa depan, saya mungkin mengemas kini ini untuk memasukkan pengecaman wajah menggunakan perpustakaan Python OpenCV, tetapi buat masa ini kata laluan harus mencukupi.

Langkah 3: Operasi Fail

Untuk menjalankan fail persediaan, ikuti langkah berikut:

1. Taipkan terminal:

kata laluan python3 / setupname.py (menggantikan direktori, nama setup, dan kata laluan dengan nilai masing-masing)

2. Terminal akan mengeluarkan nombor fail anda. Simpan ini.

Untuk menjalankan program penyulitan / penyahsulitan, ikuti langkah-langkah berikut:

1. Taipkan terminal:

python3 direktori / filename.py kata laluan fail (menggantikan direktori, nama fail, kata laluan, dan nombor fail dengan nilai masing-masing)

2. Terminal kemudian akan menerima atau menolak kata laluan anda. Sekiranya ditolak, cuba lagi dan pastikan anda memasukkan nilai yang betul. Setelah akses diberikan, terminal akan menanyakan apakah anda ingin mengenkripsi fail atau mengambil fail. Untuk menyulitkan fail, ketik e, dan untuk mendapatkan fail yang dienkripsi, ketik r.

3. Anda kemudian akan diminta untuk memberikan nama fail. Ingatlah untuk memberikan direktori fail serta nama, dan juga peluasan fail. Namun, jika anda mendekripsi fail, jangan taip bahagian.aes dari peluasan, kerana kod menjelaskannya.

4. Program kemudian menyulitkan atau menyahsulitkan fail yang disediakan, dan menghapus fail tersebut dalam keadaan sebelumnya (mengekalkan fail yang dienkripsi atau didekripsi).

Voila! Terima kasih kerana berjaya sejauh ini, saya tahu tutorial membaca kod bukanlah perkara yang paling menghiburkan. Fail python dilampirkan dalam langkah ini, bagi anda yang ingin mencuba ini. Sekali lagi, terima kasih kerana membaca, dan saya mengucapkan semoga berjaya dalam usaha pengekodan masa depan anda.

Disyorkan: