Rumah >pembangunan bahagian belakang >Golang >Cara menulis program penyulitan sifir Caesar yang mudah menggunakan Golang

Cara menulis program penyulitan sifir Caesar yang mudah menggunakan Golang

PHPz
PHPzasal
2023-04-24 09:11:111178semak imbas

Sifir Caesar ialah algoritma penyulitan mudah, juga dikenali sebagai sifir anjakan. Prinsipnya adalah untuk memindahkan setiap huruf dalam plaintext dengan jumlah tetap untuk mendapatkan ciphertext. Dalam artikel ini, kita akan belajar cara menulis program penyulitan sifir Caesar yang mudah menggunakan Golang.

Pertama, mari kita semak prinsip penyulitan dan penyahsulitan sifir Caesar. Untuk huruf tertentu, nilainya selepas disulitkan oleh sifir Caesar boleh dinyatakan dengan formula berikut:

Sifirteks = (teks biasa + kunci) mod 26

Dalam formula ini, "teks biasa" mewakili huruf asal, "kunci" mewakili jumlah yang kita mahu alihkan huruf, dan "mod 26" mewakili pemetaan huruf kepada 26 kedudukan dalam abjad untuk mendapatkan teks sifir.

Seterusnya, kami akan melaksanakan program penyulitan sifir Caesar yang mudah, di mana kami akan memasukkan teks biasa dan kunci sebagai input, dan kemudian mengeluarkan teks sifir.

Pertama, kita perlu mengimport pakej "fmt" supaya kita boleh membaca hasil input dan output pengguna. Kami juga akan menggunakan pemalar rentetan untuk menentukan susunan 26 huruf supaya kami boleh memilih huruf tertentu daripadanya.

package main

import "fmt"

const alphabet = "abcdefghijklmnopqrstuvwxyz"

Seterusnya, kami akan mentakrifkan fungsi yang menerima rentetan dan integer sebagai input dan mengembalikan rentetan. Fungsi ini akan melaksanakan fungsi penyulitan sifir Caesar:

func caesarCipher(s string, k int) string {
    var result []byte

    for i := 0; i = 'a' && c = 'A' && c <p>Dalam fungsi di atas, kami mula-mula mentakrifkan kepingan bait kosong untuk menyimpan hasil yang disulitkan. Kami kemudian menggunakan gelung untuk melelaran melalui setiap aksara dalam rentetan input. Jika aksara ialah huruf kecil, kami menukarnya kepada integer, kemudian menambah kunci kepada nilai itu, dan akhirnya menggunakan operasi modulus untuk memetakannya ke kedudukan dalam abjad. Akhir sekali, kami menambah huruf yang disulitkan pada hasilnya. </p><p>Untuk kes huruf besar, kita juga boleh mengambil perlakuan yang sama, bezanya kita perlu menukarnya kepada huruf kecil dahulu, kemudian memetakannya ke kedudukan dalam abjad, dan akhirnya menukarnya kepada huruf besar surat. </p><p>Akhir sekali, kami akan menulis fungsi utama yang mudah untuk membaca input pengguna dan mencetak hasilnya ke terminal. Berikut ialah program lengkap: </p><pre class="brush:php;toolbar:false">package main

import (
    "fmt"
    "unicode"
)

const alphabet = "abcdefghijklmnopqrstuvwxyz"

func caesarCipher(s string, k int) string {
    var result []byte

    for i := 0; i = 'a' && c = 'A' && c <p>Kini kita boleh menjalankan program dan menguji sama ada ia berjaya. Berikut ialah tangkapan skrin sampel input dan output: </p><p><img src="https://img.php.cn/upload/article/000/000/068/168230421494581.png" alt="Cara menulis program penyulitan sifir Caesar yang mudah menggunakan Golang" title="Cara menulis program penyulitan sifir Caesar yang mudah menggunakan Golang"></p><p>Seperti yang dapat dilihat daripada rajah di atas, program kami telah berjaya melaksanakan fungsi penyulitan sifir Caesar. Sudah tentu, ini hanyalah kaedah penyulitan yang sangat asas dan ia boleh dipecahkan dengan mudah. Oleh itu, dalam aplikasi praktikal, algoritma penyulitan yang lebih kompleks perlu digunakan untuk melindungi data dan maklumat sensitif. </p>

Atas ialah kandungan terperinci Cara menulis program penyulitan sifir Caesar yang mudah menggunakan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn