Modul Base64 Python adalah alat yang ampuh untuk menyandikan dan mendekode pesan. Anda dapat menggunakannya untuk mengirim data dengan aman melalui internet. Ini adalah prosedur standar untuk situs web, aplikasi, dan layanan komunikasi untuk menggunakan pengkodean semacam ini untuk melindungi data sensitif dari peretas yang bermusuhan.
Modul Base64 memiliki sepasang fungsi yang dapat Anda gunakan untuk menyandikan dan mendekode pesan, menambahkan keamanan ekstra pada transfer data Anda.
Modul Tkinter dan Base64
Tkinter memungkinkan Anda membuat aplikasi desktop. Ini menawarkan berbagai widget seperti tombol, label, dan kotak teks yang memudahkan pengembangan aplikasi tanpa terlalu banyak usaha. Anda dapat membuat program GUI yang luar biasa dengan Tkinter. Anda mungkin membuat kalkulator sederhana, aplikasi daftar tugas, atau a
permainan tes mengetik. Untuk menginstal Tkinter ke dalam sistem Anda, buka terminal Anda dan ketik:pip instal tkinter
BASE64 menyediakan fungsi untuk mengkodekan data biner ke ASCII mendekodekannya kembali ke biner. Ini mendukung pengkodean standar dan aman URL yang membuat transmisi informasi lebih aman. Untuk mengonversi string menjadi karakter Base64, dapatkan nilai ASCII dari setiap karakter dan hitung biner 8-bitnya. Ubah potongan 6 bit ini dengan mengelompokkan ulang digit dan mengubahnya kembali menjadi nilai desimal masing-masing. Terakhir, gunakan tabel pengodean Base64 untuk mendapatkan nilai Base64 untuk setiap desimal.
Cara Encode dan Decode Pesan dengan Python
Anda dapat menemukan kode sumber proyek ini di dalamnya repositori GitHub.
Mulailah dengan mengimpor kedua modul. Inisialisasi instance Tkinter dan tampilkan jendela root. Tetapkan judul, dimensi dalam piksel, dan warna latar belakang jendela.
dari tkinter impor *
impor base64
akar = Tk()
root.geometri('750x400')
root.configure (latar belakang='air')
root.judul("Encode dan Decode Pesan Menggunakan Python")
Gunakan widget Label untuk menampilkan informasi berguna tentang aplikasi. Label menerima jendela induk di mana Anda ingin meletakkannya, teks yang harus ditampilkan, dan gaya font, warna, dan warna latar belakang. Menggunakan mengemas() untuk mengatur widget di blok tata letak sebelum menempatkannya di widget induk. StringVar memudahkan untuk mengontrol nilai widget seperti Label atau Entri.
Label (akar, teks='Encoder dan Decoder Pesan Python', jenis huruf='arial 25 tebal', fg='putih', bg="ungu").mengemas()
Teks = StringVar()
kunci = StringVar()
mode = StringVar()
Hasil = StringVar()
Tentukan fungsi Menyandi() yang menerima kunci untuk encoding dan decoding bersama dengan pesan. Tentukan daftar kosong dan ulangi hingga panjang pesan. Tetapkan indeks kunci sebagai modulus operasi dan simpan nilainya dalam variabel key_c. Menggunakan pesanan() untuk mendapatkan nilai Unicode dari karakter dan gunakan chr() untuk mendapatkan karakter yang mewakili nilai yang ditentukan.
Tambahkan nilai ini ke daftar. Bergabunglah dengan setiap elemen daftar dengan string kosong dan gunakan menyandi() metode untuk mengembalikan versi string yang disandikan utf-8. Itu base64.urlsafe_b64encode() metode menyandikan input ini dan mengganti - dengan + dan _ dengan /.
defMenyandi(pesan kunci):
enc = []untuk Saya di dalam rentang (len (pesan)):
key_c = kunci[i % len (kunci)]
enc.append (chr((ord (pesan[i]) + ord (key_c)) % 256))
kembali base64.urlsafe_b64encode("".join (enc).encode()).decode()
Tentukan fungsi Membaca sandi() yang menerima kunci untuk encoding dan decoding bersama dengan pesan. Tentukan daftar kosong dan dekode pesan. Ulangi hingga panjang pesan dan atur modulus operasi sebagai indeks dan simpan nilainya di key_c. Tambahkan karakter dekode pesan string Unicode seperti yang ditunjukkan di bawah ini. Kembalikan string yang didekodekan.
defMembaca sandi(pesan kunci):
des = []
pesan = base64.urlsafe_b64decode (pesan).decode()untuk Saya di dalam rentang (len (pesan)):
key_c = kunci[i % len (kunci)]
dec.tambahkan (chr((256 + ord (pesan[i]) - ord (key_c)) % 256))
kembali"".join (des)
Tentukan fungsi Mode() yang mendapatkan mode yang dimasukkan oleh pengguna di widget Masuk dan memanggil fungsi yang sesuai sesuai pilihan. Jika pengguna tidak memasukkan respons yang valid, tampilkan pesan kesalahan.
defMode():
jika (mode.get() == 'E'):
Hasil.set (Encode (key.get(), Text.get()))
elif (mode.get() == 'D'):
Hasil.set (Dekode (key.get(), Text.get()))
kalau tidak:
hasil.set('Mode Tidak Valid')
Tentukan fungsi KELUAR() untuk membunuh dan menghentikan juru bahasa yang berjalan di latar belakang. Tentukan fungsi Reset() untuk menghapus isi kolom Entri.
defKELUAR():
root.hancurkan()
defMengatur ulang():
Kumpulan teks("")
kunci.set("")
mode.set("")
hasil.set("")
Tentukan widget Label dan Entri untuk Pesan, Kunci, Mode, dan Teks. Tentukan jendela induk tempat Anda ingin menempatkannya, gaya font, teks, dan warna latar belakang. Juga atur koordinat untuk mengaturnya.
Label (akar, font='arial 17 tebal', teks='Pesan', fg='hitam', bg="air").tempat (x=60, y=100)
Entri (root, font='arial 15', variabelteks=Teks, bg='putih').tempat (x=450, y=100)Label (akar, font='arial 17 tebal', teks='Kunci', fg='hitam', bg="air").tempat (x=60, y=130)
Entri (root, font='arial 15', variabelteks=kunci, bg='putih').tempat (x=450, y=130)Label (akar, font='arial 17 tebal', teks='Mode (E-Enkode, D-Dekode)', fg='hitam', bg="air").tempat (x=60, y=160)
Entri (root, font='arial 15', variabel teks=mode, bg='putih').tempat (x=450, y=160)
Label (akar, font='arial 17 tebal', teks='Teks', fg='hitam', bg="air").tempat (x=60, y=190)
Entri (root, font='arial 15 bold', variabelteks=Hasil, bg='putih').tempat (x=450, y=190)
Demikian pula, tentukan tiga tombol untuk melihat hasilnya, setel ulang bidang, dan hentikan program. Tombol memiliki parameter khusus yang disebut perintah yang mengambil fungsi dan menjalankannya saat diklik.
Tombol (root, font='arial 15 bold', teks='Hasil', padx=2, bg='Abu-abu muda', perintah=Mode).tempat (x=100, y=240)
Tombol (root, font='arial 15 bold', teks='Mengatur ulang', lebar=6, perintah=Setel Ulang, bg='Hijau', padx=2).tempat (x=300, y=240)
Tombol (root, font='arial 15 bold', teks='Berhenti', lebar=6, perintah=Keluar, bg='Merah', padx=2, padi=2).tempat (x=500, y=240)
Itu mainloop() fungsi memberi tahu Python untuk menjalankan loop acara Tkinter dan mendengarkan acara (seperti penekanan tombol) hingga Anda menutup jendela.
root.mainloop()
Encoder / Decoder Pesan sedang Beraksi
Saat menjalankan program, program menampilkan jendela tempat Anda harus memasukkan pesan, kunci, dan mode. Saat memilih mode Pengkodean dengan kunci 2009, pesannya Menggunakan berubah menjadi f8KRwpvCnlLChcKjwp5Sf8KW.
Demikian pula, saat menyalin pesan yang disandikan dan menempelkannya kembali ke input untuk decoding dengan yang sama, Anda mendapatkan kembali pesan aslinya.
Keamanan Siber Menggunakan Python
Anda dapat menggunakan Python untuk menulis skrip yang mengotomatiskan pemeriksaan keamanan, memantau jaringan, dan memindai kerentanan. Anda dapat menggunakannya untuk membuat aplikasi tangguh yang menggunakan autentikasi untuk menurunkan kemungkinan penyerang meretas data Anda.
Pakar keamanan siber sering menggunakan Python untuk membangun firewall aplikasi web untuk memantau aplikasi. Mereka dapat melakukan analisis deteksi ancaman menggunakan Machine Learning. Dengan arsitektur ini, jauh lebih mudah untuk membuat uji penetrasi khusus dan memvalidasi protokol keamanan.