Python实现的凯撒密码算法示例

本文实例讲述了Python实现的凯撒密码算法。分享给大家供大家参考,具体如下:

一 介绍

凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。

二 代码

# -*- 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"您的输入有误!")

三 运行结果

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode

MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

您可能感兴趣的文章:

  • Python实现的维尼吉亚密码算法示例
  • python 换位密码算法的实例详解
  • python使用rsa加密算法模块模拟新浪微博登录
  • python实现RSA加密(解密)算法
  • Python基于DES算法加密解密实例
  • python实现的DES加密算法和3DES加密算法实例
  • Python实现的文本简单可逆加密算法示例
  • Python md5与sha1加密算法用法分析
  • Python实现的rsa加密算法详解
  • Python实现的HMacMD5加密算法示例
  • Python使用MD5加密算法对字符串进行加密操作示例
  • Python基于pycrypto实现的AES加密和解密算法示例
(0)

相关推荐

  • python实现的DES加密算法和3DES加密算法实例

    本文实例讲述了python实现的DES加密算法和3DES加密算法.分享给大家供大家参考.具体实现方法如下: ############################################################################# # Documentation # ############################################################################# # Author: Todd Whitema

  • Python实现的文本简单可逆加密算法示例

    本文实例讲述了Python实现的文本简单可逆加密算法.分享给大家供大家参考,具体如下: 其实很简单,就是把一段文本每个字符都通过某种方式改变(比如加1) 这样就实现了文本的加密操作,解密就是其逆运算 # -*-coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') #加密 def jiami(): filename=raw_input('please input file:\n') while True: tr

  • Python md5与sha1加密算法用法分析

    本文实例讲述了Python md5与sha1加密算法.分享给大家供大家参考,具体如下: MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2.MD3和MD4发展而来.是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密

  • python实现RSA加密(解密)算法

    RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准. 今天只有短的RSA钥匙才可能被强力方式解破.到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式.只要其密钥的长度足够长,用RSA加密的信息实际上是不能被解破的.但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战. RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥.

  • python 换位密码算法的实例详解

     python 换位密码算法的实例详解 一前言: 换位密码基本原理:先把明文按照固定长度进行分组,然后对每一组的字符进行换位操作,从而实现加密.例如,字符串"Error should never pass silently",使用秘钥1432进行加密时,首先将字符串分成若干长度为4的分组,然后对每个分组的字符进行换位,第1个和第3个字符位置不变,把第2个字符和第4个字符交换位置,得到"Eorrrs shluoden v repssa liseltny" 二 代码:

  • Python基于DES算法加密解密实例

    本文实例讲述了Python基于DES算法加密解密实现方法.分享给大家供大家参考.具体实现方法如下: #coding=utf-8 from functools import partial import base64 class DES(object): """ DES加密算法 interface: input_key(s, base=10), encode(s), decode(s) """ __ip = [ 58,50,42,34,26,18,

  • Python实现的rsa加密算法详解

    本文实例讲述了Python实现的rsa加密算法.分享给大家供大家参考,具体如下: 算法过程 1. 随意选择两个大的质数p和q,p不等于q,计算N=pq. 2. 根据欧拉函数,不大于N且与N互质的整数個数為(p-1)(q-1). 3. 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1). 4. 用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1)). 5. 将p和q的记录销毁. (N,e)是公钥,(N,d)是私钥. python代码 # -*- coding

  • Python实现的维尼吉亚密码算法示例

    本文实例讲述了Python实现的维尼吉亚密码算法.分享给大家供大家参考,具体如下: 一 代码 # -*- coding:utf-8 -*- #key='relations' #plaintext='tomorrowiwillhaveagood' print("我们测试结果:") key='helloworld' plaintext=raw_input('请输入明文:') ascii='abcdefghijklmnopqrstuvwxyz' keylen=len(key) ptlen=l

  • python使用rsa加密算法模块模拟新浪微博登录

    PC登录新浪微博时,在客户端用js预先对用户名.密码都进行了加密,而且在POST之前会GET一组参数,这也将作为POST_DATA的一部分.这样,就不能用通常的那种简单方法来模拟POST登录(比如人人网). 通过爬虫获取新浪微博数据,模拟登录是必不可少的. 1.在提交POST请求之前,需要GET获取四个参数(servertime,nonce,pubkey和rsakv),不是之前提到的只是获取简单的servertime,nonce,这里主要是由于js对用户名.密码加密方式改变了. 1.1 由于加密

  • Python使用MD5加密算法对字符串进行加密操作示例

    本文实例讲述了Python使用MD5加密算法对字符串进行加密操作.分享给大家供大家参考,具体如下: # encoding: utf-8 from __future__ import division import time import sys reload(sys) time1=time.time() sys.setdefaultencoding('utf-8') #######Md5实现方式1 import hashlib # 创建md5对象 hl = hashlib.md5() passw

  • Python基于pycrypto实现的AES加密和解密算法示例

    本文实例讲述了Python基于pycrypto实现的AES加密和解密算法.分享给大家供大家参考,具体如下: 一 代码 # -*- coding: UTF-8 -*- import string import random from Crypto.Cipher import AES def keyGenerater(length): '''''生成指定长度的秘钥''' if length not in (16, 24, 32): return None x = string.ascii_lette

  • Python实现的HMacMD5加密算法示例

    本文实例讲述了Python实现的HMacMD5加密算法.分享给大家供大家参考,具体如下: 什么是 HMAC-MD5? 1.比如你和对方共享了一个密钥K,现在你要发消息给对方,既要保证消息没有被篡改,又要能证明信息确实是你本人发的,那么就把原信息和使用K计算的HMAC的值一起发过去.对方接到之后,使用自己手中的K把消息计算一下HMAC,如果和你发送的HMAC一致,那么可以认为这个消息既没有被篡改也没有冒充. 2.MD5就是通过散列对要输出的数据进行摘要,接收到数据时,再同样进行MD5散列,与给定的

随机推荐