加密一个字母的步骤是 :
1 .从 1到 2 5选一个密钥 。保管好这个密钥 !
2 .找出明文字母的数字 。
3 .把密钥加到这个明文字母的数字 。
4 .如果这个数字大于 2 6 ,则减去 2 6 。
5 .找出你计算的数字的字母 。这就是密文字母 。
6 .对明文消息里的每个字母重复步骤 2 ~ 5 。
思考?多次凯撒加密是否更安全?答案是否定的,多次加密反而无效,直接得到明文
对字符进行编码
key=3 为密钥
如果要解密,编码减去这个密钥key, 而不是加上它。
破解方法:爆破方式,逐个密钥尝试
4-反转加密法对明文进行倒序反转,例如:“Hello world!” 反转加密变为:成“! dlrow olleH”
加密性弱,一般用于密文进行反转加密
5-换位加密法、加密、解密及过程对明文信息进行打乱顺序,例如:加密“ Common sense is not so common.” 这条 消息。 算上空格和 标点符号, 这条消息包含30个字符。利用密钥Key=8,即8列
加密过程:
将明文是行的,密文为列,即:密 文 是“ Cenoonommstmme oo snnio. s s c”
加密 的 步骤 如下:
1. 数 一下 消息 里 的 字符 个数。
2. 画 一行 个数 等于 密钥 的 格子。( 比如说, 密钥 是 12, 格子 就有 12 个。)
3. 从左到右 开始 填充 格子, 每个 格子 填 一个 字符。
4. 当你 用完 格子 还有 字符 剩下 时, 再加 一行 格子。
5. 把 最后 一行 剩下 不用 的 格子 涂成 灰色。
6. 从 最上 角 开始 往下 写出 字符。 当你 到达 这一 行的 底部 后, 移到 右边 那 一列。
跳过 任何 灰色 的 格子。 这 就是 密 文。
Al Sweigart 斯维加特. Python密码学编程(异步图书) (p. 74). 人民邮电出版社. Kindle 版本.
解密过程:
收到密 文“ Cenoonommstmme oo snnio. s s c” ,知道密钥是 8,密文长度Length / 密钥key = 30/4 =3.75,向上取整为4,将密文按列放在4列8行的表格中,如下: