Isi kandungan:
- Langkah 1: Menulis Fail Persediaan
- Langkah 2: Fail Penyulitan / Penyahsulitan
- Langkah 3: Operasi Fail
Video: Perisian Penyulitan / Penyahsulitan Keselamatan Python: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
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
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
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:
Peranti Pintar Perisian Perkakasan dan Perisian, Tuya dan Jalur Lebar LED, Sonoff, Palam Pintar BSD33: 7 Langkah
Peranti Pintar Perisian Perkakasan dan Perisian, Tuya dan Broadlink LED, Sonoff, BSD33 Smart Plug: Dalam Instruksional ini saya menunjukkan kepada anda bagaimana saya memancarkan beberapa peranti pintar dengan firmware saya sendiri, jadi saya dapat mengawalnya dengan MQTT melalui persediaan Openhab saya. Saya akan menambah peranti baru ketika saya menggodamnya. Sudah tentu ada kaedah berasaskan perisian lain untuk mem
Cara Memuat turun Perisian Percuma Sebagai Pelajar ISU (Microsoft, Adobe, dan Perisian Keselamatan: 24 Langkah
Cara Memuat turun Perisian Percuma Sebagai Pelajar ISU (Microsoft, Adobe, dan Perisian Keselamatan: Untuk Adobe: pergi ke langkah 1. Untuk Microsoft: pergi ke langkah 8. Untuk Keselamatan: pergi ke langkah 12. Untuk Azure: pergi ke langkah 16
Butang Keselamatan Tanpa Wayar untuk Keselamatan PLC: 6 Langkah (dengan Gambar)
Butang Keselamatan Tanpa Wayar untuk Keselamatan PLC: Projek ini adalah bukti konsep saya untuk menggunakan robotik IoT dan (akhirnya) untuk membuat lapisan keselamatan tambahan untuk kemudahan pembuatan berbahaya. Butang ini boleh digunakan untuk memulakan atau menghentikan beberapa proses, termasuk kawalan isyarat
Menghilangkan PC Perisian Perisian Keras dan Virus: 10 Langkah
Membebaskan PC Peribadi anda dari Perisian Kerosakan dan Virus .: Komputer Lambat? Munculan? Adakah komputer anda berjalan lambat, atau anda perasan sering muncul walaupun anda tidak menggunakan penyemak imbas? Ada kemungkinan besar PC anda dijangkiti virus, malware, atau perisian intip. Terdapat banyak alat yang tersedia untuk menolong
Kata Laluan Pemacu Usb Tanpa Penyulitan Dengan Fail Batch: 8 Langkah
Password a Usb Drive With Out Encryption With Batch File: program yang tidak akan membiarkan pengguna dalam drive tanpa kata laluan dan akan menunjukkan fail pemilik yang boleh anda ubah sesuka hati akan menunjukkan kepada anda bagaimana menggunakan program yang saya buat dengan mudah