Isi kandungan:
- Bekalan
- Langkah 1: Menyatakan Pemboleh ubah dan Mendapatkan Input
- Langkah 2: Membuat Huruf Baru
- Langkah 3: Mengalihkan Mesej
- Langkah 4: Tambahan
Video: Program Caesar Cipher di Python: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
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
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
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
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
Terlampir adalah fail kod.
Disyorkan:
Program 2048 Permainan Sendiri W / Java !: 8 Langkah
Memprogram sendiri 2048 Permainan W / Java !: Saya suka permainan 2048. Oleh itu, saya memutuskan untuk memprogram versi saya sendiri. Ia sangat mirip dengan permainan yang sebenarnya, tetapi memprogramnya sendiri memberi saya kebebasan untuk mengubah apa sahaja yang saya mahukan kapan pun saya mahu. Sekiranya saya mahukan permainan 5x5 dan bukannya 4x4 biasa, s
Program Python - Menambah Faedah DENGAN Sumbangan / Deposit Bulanan: 5 Langkah
Program Python - Penggabungan Faedah DENGAN Sumbangan / Deposit Bulanan: Program untuk mengira faedah kompaun dengan sumbangan bulanan pada akhir bulan. Formula diambil dari TheCalculatorSite.com:Kepentingan kompaun untuk prinsipal: P (1 + r / n) ^ (nt) Nilai masa depan siri: PMT × (((1 + r / n) ^ nt - 1) / (r / n))
Cara Membuat Program Integrasi Numerik di Python: 10 Langkah
Cara Membuat Program Integrasi Numerik di Python: Ini adalah tutorial bagaimana membuat dan menjalankan program yang akan menilai integrasi pasti menggunakan algoritma integrasi berangka. Saya telah membahagikan langkah-langkahnya kepada 3 bahagian: memahami algoritma yang akan digunakan untuk membuat program, pengekodan
Pembesar suara Bill Cipher Pyramid: 9 Langkah (dengan Gambar)
Bill Cipher Pyramid Speaker: Projek ini diilhamkan oleh reka bentuk piramid untuk Bill Cipher dari rancangan Gravity Falls dan dibuat untuk Design Technology Class. Pada masa ini produk tersebut belum selesai dan ini berfungsi sebagai rancangan pengeluaran. Halaman akan dikemas kini apabila produk
Vigenere Cipher Dengan Arduino: 3 Langkah
Vigenere Cipher With Arduino: Beberapa tahun yang lalu, Digital Fortress oleh Dan Brown menarik perhatian saya dan satu perkara tertentu terlintas di fikiran saya. Kryptos, patung oleh Jim Sanborn yang terdiri daripada teks berurutan yang mana dua bahagian pertama disulitkan oleh Vigen è re cipher. Saya