Ecrire un programme de chiffrement Caesar en Python

introduction

Quand j'ai commencé CTF, quelque chose appelé le cryptage César est sorti, donc un traitement de décryptage était nécessaire. Vous pouvez le faire manuellement, mais c'est un programme! Cela peut aussi être une rééducation! Alors je l'ai écrit immédiatement. Ma machine n'avait qu'un environnement de développement Python, alors allez-y avec Python!

Qu'est-ce que le code César?

Pour le déchiffrer, vous devez savoir par quel type d'algorithme le code a été généré. Le code César est généré en décalant les caractères de 3 caractères. Comme c'est simple!

Programme de cryptage et de décryptage

Tout d'abord, le cryptage. Décale le texte brut caractère par caractère avec la touche (nombre) spécifiée. Le cas étant différent, cette fois nous n'utiliserons que des alphabets. Il y a 25 lettres anglaises, alors faites attention à vous retourner. Cryptez la chaîne de caractères appropriée "wjrslairznb"!

def crypt(plainStr, shiftInt):
    resultStr = ""
    for char in plainStr:
        if ord(char) + shiftInt > ord('z'):
            resultStr = resultStr + chr(ord(char) + shiftInt - 26)
        else:
            resultStr = resultStr + chr(ord(char) + shiftInt)
    print('crypt:' + resultStr)

Résultat d'exécution スクリーンショット 2020-11-20 14.11.02.png

Le déchiffrement était simplement calculé à l'envers ...

def decrypt(cryptoStr, shiftInt):
    resultStr = ""
    for char in cryptoStr:
        if ord(char) - shiftInt < ord('a'):
            resultStr = resultStr + chr(ord(char) - shiftInt + 26)
        else:
            resultStr = resultStr + chr(ord(char) - shiftInt)
    print('decrypt:' + resultStr)

Résultat d'exécution スクリーンショット 2020-11-20 14.12.52.png Cela semble être plus facile et plus simple ...

A part: le cryptage César est trop simple comme cryptage, mais peut-il être utilisé?

Indisponible. Vulnérable! !! Puisqu'il s'agit d'un code créé dans la Rome antique, il doit avoir été valide dans le passé. Il y a une histoire en cryptographie.

en conclusion

En fait, cela fait un moment que je n'ai pas de programme, et même si j'ai un environnement Python, je n'y ai pas touché et c'était très amusant. Il existe des tonnes de programmes comme celui-ci si vous recherchez sur Google, mais j'aime les écrire moi-même d'abord, puis regarder le code de génie et faire correspondre les réponses plus tard.

Recommended Posts

Ecrire un programme de chiffrement Caesar en Python
J'ai créé un programme cryptographique César en Python.
Ecrire un programme de dynamique moléculaire super simple en python
Ecrire une dichotomie en Python
Code César (y compris les kanji) en Python
Ecrire des algorithmes A * (A-star) en Python
Ecrire un graphique à secteurs en Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
Lors de l'écriture d'un programme en Python
J'ai fait un programme de gestion de la paie en Python!
Ecrire le test dans la docstring python
Ecrire une courte définition de propriété en Python
Ecrire une méthode de cupidité simple en Python
Ecrire un plugin Vim simple en Python 3
Ecrire Python dans MySQL
Un programme qui supprime les instructions en double en Python
Notes de programme simples Pub / Sub en Python
Écrivons un programme Python et exécutons-le
Prendre une capture d'écran en Python
Ecrire des filtres Pandec en Python
Créer une fonction en Python
Recevez des données de dictionnaire à partir de programmes Python avec AppleScript
Ecrire python dans Rstudio (réticulé)
Je veux écrire en Python! (2) Écrivons un test
Essayez d'incorporer Python dans un programme C ++ avec pybind11
[Débutant] Que se passe-t-il si j'écris un programme qui s'exécute sur php en Python?
Créer un bookmarklet en Python
Ecrire un histogramme à l'échelle logarithmique sur l'axe des x en python
Dessinez un cœur en Python
Programme Python du "Livre qui enseigne facilement la programmation difficile"
Un programme polyvalent qui formate les chaînes de commande Linux avec python
J'ai essayé "un programme qui supprime les déclarations en double en Python"
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire un test piloté par table en C
[python] Gérer les fonctions dans une liste
Appuyez sur une commande en Python (Windows)
Ecrire un schéma JSON avec Python DSL
Créer un conteneur DI avec Python
Ecrire un serveur HTTP / 2 en Python
Dessinez une matrice de diagramme de dispersion avec python
Ecrire une fonction AWS Lambda en Python
ABC166 en Python A ~ C problème
Programme de diagnostic de compatibilité écrit en python
Ecrire le code de test du sélénium en python
Résoudre ABC036 A ~ C avec Python
Implémentation d'un algorithme simple en Python 2
Résoudre ABC037 A ~ C avec Python
Exécutez un algorithme simple en Python
Dessinez un diagramme CNN en Python
Créer une chaîne aléatoire en Python
Ecrire un test unitaire de langage C en Python
Ecrire un script batch avec Python3.5 ~
Lisez le fichier en Python avec un chemin relatif depuis le programme
Un programme qui détermine si un nombre entré en Python est un nombre premier