Maison >développement back-end >Golang >Comment écrire un simple programme de cryptage du chiffre César en utilisant Golang

Comment écrire un simple programme de cryptage du chiffre César en utilisant Golang

PHPz
PHPzoriginal
2023-04-24 09:11:111172parcourir

Caesar Cipher est un algorithme de cryptage simple, également connu sous le nom de chiffrement par décalage. Son principe est de déplacer chaque lettre du texte en clair d'une quantité fixe pour obtenir le texte chiffré. Dans cet article, nous apprendrons comment écrire un programme simple de cryptage du chiffre César à l’aide de Golang.

Tout d'abord, passons en revue les principes de cryptage et de déchiffrement du chiffre César. Pour une lettre donnée, sa valeur après avoir été chiffrée par le chiffre César peut être exprimée par la formule suivante :

Ciphertext = (plaintext + key) mod 26

Dans cette formule, "plaintext" représente la lettre originale, "key" signifie la quantité dont nous voulons déplacer les lettres, et "mod 26" signifie mapper les lettres sur 26 positions dans l'alphabet pour obtenir le texte chiffré.

Ensuite, nous implémenterons un simple programme de cryptage du chiffre César, dans lequel nous prendrons le texte en clair et la clé en entrée, puis nous sortirons le texte chiffré.

Tout d'abord, nous devons importer le package "fmt" afin de pouvoir lire les résultats d'entrée et de sortie de l'utilisateur. Nous utiliserons également des constantes de chaîne pour définir l'ordre des 26 lettres afin de pouvoir en sélectionner des lettres spécifiques.

package main

import "fmt"

const alphabet = "abcdefghijklmnopqrstuvwxyz"

Ensuite, nous définirons une fonction qui accepte une chaîne et un entier en entrée et renvoie une chaîne. Cette fonction implémentera la fonction de cryptage du chiffre César :

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

    for i := 0; i = 'a' && c = 'A' && c <p> Dans la fonction ci-dessus, nous définissons d'abord une tranche d'octets vide pour enregistrer le résultat crypté. Nous utilisons ensuite une boucle pour parcourir chaque caractère de la chaîne d’entrée. Si le caractère est une lettre minuscule, nous le convertissons en entier, puis ajoutons la clé à cette valeur et enfin utilisons une opération de module pour le mapper à une position dans l'alphabet. Enfin, nous ajoutons les lettres cryptées au résultat. </p><p>Pour le cas des lettres majuscules, nous pouvons également faire quelque chose de similaire, la différence est que nous devons d'abord les convertir en lettres minuscules, puis les mapper à une position dans l'alphabet, et enfin les convertir en lettres majuscules. </p><p>Enfin, nous écrirons une fonction principale simple pour lire les entrées de l'utilisateur et imprimer les résultats sur le terminal. Voici le programme complet : </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> Nous pouvons maintenant exécuter le programme et tester s'il a réussi. Ce qui suit est une capture d'écran d'un exemple d'entrée et de sortie : </p><p><img src="https://img.php.cn/upload/article/000/000/068/168230421494581.png" alt="Comment écrire un simple programme de cryptage du chiffre César en utilisant Golang" title="Comment écrire un simple programme de cryptage du chiffre César en utilisant Golang"></p><p>Comme vous pouvez le voir sur la figure ci-dessus, notre programme a implémenté avec succès la fonction de cryptage du chiffre César. Bien sûr, il ne s’agit que d’une méthode de cryptage très basique et elle peut être facilement déchiffrée. Par conséquent, dans les applications pratiques, des algorithmes de chiffrement plus complexes doivent être utilisés pour protéger les données et informations sensibles. </p>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn