python 密码学编程

最近在看一本书。名字是 python密码学编程。在此做一些笔记,同时也为有需要的人提供一些参考。

********************************************************************

*        quote : "http://inventwithpython.com/"              *

*        python-version : 2.7.11                      *

********************************************************************

1.第一种加密方法。反转加密法。

即通过反向输出消息来进行加密。例如将“Hello World” 加密成 “dlroW olleH”

这是一种非常弱的加密方式。么什了说它清弄以可然仍你,密加被已息信条这使即

1 message = "Three can keep a secret,if two of them are dead."
2 translated = ''
3 
4 i = len(message) - 1
5 while i >= 0:
6     translated = translated + message[i]
7     i = i - 1
8 print translated

实现思路也非常简单。就是把一个String从后到前拼接到另一个String上。

至于解密。可以使message 为加密后的密文,打印出来的即为明文。

2.凯撒加密法

凯撒加密(Caesar cipher)是一种简单的消息编码方式:它根据字母表将消息中的每个字母移动常量位k。举个例子如果k等于3,则在编码后的消息中,每个字母都会向前移动3位:a会被替换为d;b会被替换成e;依此类推。字母表末尾将回卷到字母表开头。于是,w会被替换为z,x会被替换为a

 1 message = "this is my secret message"
 2 key = 13
 3 
 4 mode = "encrypt"
 5 LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 6 translated = ''
 7 message = message.upper()
 8 
 9 for symbol in message:
10     if symbol in LETTERS:
11         num = LETTERS.find(symbol)
12         if mode == "encrypt":
13             num = num + key
14         elif mode == &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值