Isi kandungan:

Program Caesar Cipher di Python: 4 Langkah
Program Caesar Cipher di Python: 4 Langkah

Video: Program Caesar Cipher di Python: 4 Langkah

Video: Program Caesar Cipher di Python: 4 Langkah
Video: Caesar Cipher (Part 1) 2024, November
Anonim
Program Caesar Cipher di Python
Program Caesar Cipher di Python

Caesar Cipher adalah cipher kuno dan banyak digunakan yang mudah disulitkan dan didekripsi. Ia berfungsi dengan menggeser huruf abjad untuk membuat abjad yang sama sekali baru (ABCDEF dapat beralih lebih dari 4 huruf dan akan menjadi EFGHIJ).

Caesar Ciphers bukan cipher paling selamat di luar sana tetapi bagus untuk tugas kecil seperti menyampaikan nota rahsia atau membuat kata laluan menjadi lebih kuat. Sangat mudah untuk menguraikan kodnya, tetapi sukar untuk menyulitkan kod jika anda tidak menghafal abjad khas.

Untuk mempermudah proses ini, kita dapat menggunakan kekuatan komputer, lebih khusus lagi bahasa pengaturcaraan Python.

Instructable ini akan menunjukkan kepada anda bagaimana membuat program yang menukar mesej menjadi cipher mengikut arahan anda.

Bekalan

Yang anda perlukan hanyalah jurubahasa Python: IDLE, Pycharm, dan Thonny adalah beberapa pilihan percuma yang baik (saya menggunakan Pycharm)

Pengetahuan asas Python

Langkah 1: Menyatakan Pemboleh ubah dan Mendapatkan Input

Menyatakan Pemboleh ubah dan Mendapatkan Input
Menyatakan Pemboleh ubah dan Mendapatkan Input

Untuk benar-benar menyimpan nilai rentetan (teks) abjad, mesej, pergeseran, dan lain-lain, kita perlu menggunakan pemboleh ubah. Kita mulakan dengan menyatakan pemboleh ubah 'abjad', 'partialOne', 'partialTwo', dan 'newAlphabet'. Saya telah menulis nama pemboleh ubah dalam Camel Case dalam kod saya (perkataan pertama adalah huruf kecil dan huruf besar kedua) tetapi anda boleh menulisnya dengan cara yang anda mahukan, selagi anda ingat untuk mengubahnya di seluruh kod yang lain juga. Pembolehubah abjad mempunyai nilai "abcdefghijklmnopqrstuvwxyz". Semua pemboleh ubah lain ditetapkan ke "", yang merupakan rentetan kosong kerana kita belum mempunyai nilainya.

Apa yang dilakukan ini adalah mengatur sistem Separa, yang kita gunakan untuk benar-benar membuat pergeseran. Ini akan dijelaskan pada langkah seterusnya.

Selepas ini, kita mesti mendapatkan mesej dan menukar nilai dari pengguna. Kami menggunakan fungsi input untuk melakukan ini. Bahagian kod ini meminta pengguna untuk mendapatkan mesej dan nombor untuk menukar abjad dengan.

KOD:

abjad = "abcdefghijklmnopqrstuvwxyz"

partialOne = ""

separa Dua = ""

newAlphabet = ""

message = input ("Sila masukkan mesej yang ingin anda terjemahkan:").lower ()

key = int (masukan ("Masukkan nombor yang ingin anda ganti dengan:"))

Langkah 2: Membuat Huruf Baru

Membuat Huruf Baru
Membuat Huruf Baru

Sekarang untuk membuat abjad yang diubah. Untuk melakukan ini, kita akan menggunakan sistem separa. Sistem separa adalah di mana komputer membahagikan abjad menjadi dua bahagian (cara yang menarik untuk mengatakan bahagian). Sebahagian pertama bagaimanapun lama anda memberitahu program untuk beralih, dan yang kedua adalah selebihnya. Komputer menukar separa. Itulah yang dilakukan kod, bersama dengan pernyataan pertama, yang mengatakan bahawa jika pergeseran adalah 0, abjad baru dan abjad lama adalah sama kerana anda tidak menukar apa-apa.

Sebagai contoh:

Urutan - 123456789

Separa Satu - 123; Separa Dua - 456789

Urutan Baru - 456789123

KOD:

jika kunci == 0:

newAlphabet = abjad

kunci elif> 0:

partialOne = abjad [: kunci]

partialTwo = abjad [kunci:]

newAlphabet = partialTwo + partialOne

lain:

partialOne = abjad [:(26 + kekunci)]

partialTwo = abjad [(26 + kekunci):]

newAlphabet = partialTwo + partialOne

Langkah 3: Mengalihkan Mesej

Mengalihkan Mesej
Mengalihkan Mesej

Sekarang kita mempunyai abjad dan abjad baru. Yang tinggal hanyalah menukar mesej ke dalam kod.

Pertama, kami menetapkan pemboleh ubah baru dan memanggilnya 'disulitkan' dan menetapkannya ke "". Kemudian kami menulis for-loop yang sangat rumit yang memeriksa setiap huruf dalam mesej dan menukarnya ke huruf baru. Ini menghasilkan hasilnya dan di sana anda memilikinya, kod yang berjaya ditukarkan!

KOD:

disulitkan = "" untuk message_index dalam julat (0, len (mesej)):

jika mesej [message_index] == "":

disulitkan + = ""

untuk alphabet_index dalam julat (0, len (newAlphabet)):

jika mesej [message_index] == abjad [alphabet_index]:

disulitkan + = alfabet baru [alphabet_index]

cetak (disulitkan)

Langkah 4: Tambahan

Tambahan
Tambahan
Tambahan
Tambahan

Terlampir adalah fail kod.

Disyorkan: