Maison > développement back-end > Tutoriel Python > Exemple d'algorithme de chiffrement César implémenté en Python

Exemple d'algorithme de chiffrement César implémenté en Python

不言
Libérer: 2018-05-05 15:32:33
original
8991 Les gens l'ont consulté

Cet article présente principalement l'algorithme de chiffrement César implémenté en Python, présente brièvement le concept et le principe du chiffrement César et analyse les définitions pertinentes et les techniques d'utilisation de l'algorithme de chiffrement César implémenté en Python sous forme d'exemples. besoin peut se référer à ce qui suit

L'exemple de cet article décrit l'algorithme de chiffrement César implémenté en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Introduction

Le chiffre César est une méthode de cryptage très ancienne selon. Selon la légende, César était Afin de garantir que leurs ordres ne soient pas connus de l'ennemi lorsqu'ils marchent et combattent sur terre, ils utilisent cette méthode spéciale pour communiquer afin d'assurer la sécurité de la transmission des informations. Son principe est très simple, en dernière analyse, c'est le remplacement de lettres entre lettres. Regardons un exemple simple : « baidu » est chiffré avec le chiffre César et la chaîne devient « edlgx ». Quel est son principe ? Décalez chaque lettre de « baidu » vers l’arrière de 3 chiffres dans l’ordre alphabétique, et le résultat est le texte chiffré que nous venons de voir.

Deuxième code

# -*- coding:utf-8 -*-
import os
#==================================================================#
#     凯撒密码(caesar)是最早的代换密码,对称密码的一种        #
#  算法:将每个字母用字母表中它之后的第k个字母(称作位移值)替代      #
#==================================================================#
def encryption():
  str_raw = raw_input("请输入明文:")
  k = int(raw_input("请输入位移值:"))
  str_change = str_raw.lower()
  str_list = list(str_change)
  str_list_encry = str_list
  i = 0
  while i < len(str_list):
    if ord(str_list[i]) < 123-k:
      str_list_encry[i] = chr(ord(str_list[i]) + k)
    else:
      str_list_encry[i] = chr(ord(str_list[i]) + k - 26)
    i = i+1
  print ("加密结果为:"+"".join(str_list_encry))
def decryption():
  str_raw = raw_input("请输入密文:")
  k = int(raw_input("请输入位移值:"))
  str_change = str_raw.lower()
  str_list = list(str_change)
  str_list_decry = str_list
  i = 0
  while i < len(str_list):
    if ord(str_list[i]) >= 97+k:
      str_list_decry[i] = chr(ord(str_list[i]) - k)
    else:
      str_list_decry[i] = chr(ord(str_list[i]) + 26 - k)
    i = i+1
  print ("解密结果为:"+"".join(str_list_decry))
while True:
  print (u"1. 加密")
  print (u"2. 解密")
  choice = raw_input("请选择:")
  if choice == "1":
    encryption()
  elif choice == "2":
    decryption()
  else:
    print (u"您的输入有误!")
Copier après la connexion

Trois résultats en cours

Recommandations associées :

Exemple d'implémentation Python pour trouver tous les sous-ensembles d'un ensemble

Python implémente l'algorithme classique LR

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal