Python密码学编程(1)反转加密法

本文介绍了Python中的反转加密法,通过反向输出实现字符串加密。讲解了反转加密法的工作原理,展示了源代码,并运行程序得到加密后的字符串。同时,讨论了len()函数、while循环、布尔数据类型、比较运算符、条件语句以及代码块的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 反转加密法

主要内容:

  • len()函数
  • while循环
  • 布尔函数类型
  • 比较运算符
  • 条件
  • 代码块

1.1 反转加密法描述

  • 反转加密法通过反向输出消息进行加密

1.2 反转加密法程序的源代码

# Reverse Cipher

message = 'There can keep a secret, if two of them are dead.'
translated = ''

i = len(message) - 1
while i>=0:
    translated = translated + message[i]
    i = i - 1
    
print(translated)
.daed era meht fo owt fi ,terces a peek nac erehT

1.3 运行反转加密法程序

  • 运行程序得到输出为:.daed era meht fo owt fi ,terces a peek nac erehT
  • 要想解密这条消息,把“.daed era meht fo owt fi ,terces a peek nac erehT”粘贴到message中
# Reverse Cipher2

message = '.daed era meht fo owt fi ,terces a peek nac erehT'
translated = ''

i = len(message) - 1
while i>=0:
    translated = translated + message[i]
    i = i - 1
    
print(translated)
There can keep a secret, if two of them are dead.

1.4 这个程序如何工作

# Reverse Cipher2

注释说明这个程序做什么

message = 'There can keep a secret, if two of them are dead.'

我们把希望保存的字符串存入message向量,每当希望加密或解密一个新的字符串时,直接输入进去即可

translated = ''

translated变量是程序保存反转的字符串的地方,开始时保存一个空字符串。

  • 空字符串是两个单引号,而不是一个双引号

1.5 len()函数

i = len(message) - 1
  • len()函数接收一个字符串值参数,返回一个整数值,表示这个字符串中有多少字符,也就是这个字符串的长度。
    • 空格和标点符号也算入字符串长度

1.6 while循环简介

while i>=0:
  • 这称为while循环或称为while语句。一个while循环由4个部分组成:
    • while关键字
    • 一个计算得到True或False布尔值的表达式(又称为条件)
    • 一个冒号(:)
    • 一块缩进的代码

1.7 布尔数据类型

  • 布尔数据类型只有True和False两个值,这些值是大小写敏感的。
  • 和其他数据类型 的值一样,布尔值也可以保存在变量里。
spam = True
spam
True
spam = False
spam
False

1.8 比较运算符

  • 比较运算符用来比较两个值,计算得到True或False布尔值
    • < 小于
    • &gt;&gt;> 大于
    • <= 小于或等于
    • &gt;=&gt;=>= 大于或等于
    • == 等于
    • != 不等于

1.9 条件

  • 条件是在while语句或if语句中使用的表达式的别称。条件通常包含比较运算符,但条件仍然只是表达式。

1.10 代码块

  • 一个代码块是一行或多行代码组合起来,有着相同的最小缩进量,可以通过观察这行的缩进来判断一个代码块的起止。

1.11 while循环语句

while i>=0:
    translated = translated + message[i]
    i = i - 1
    
print(translated)
  • 如果条件计算得到True,那么程序的执行就会进入while语句后面的代码块
  • 如果条件计算得到False,那么程序的执行就会跳过后面这个代码块里的代码,跳到这个代码块后面的第一行代码
  • 如果条件是True,程序的执行将从这个代码块的顶部开始,向下依次执行每行。在到达这个代码块底部时,程序的执行会回到前面的while语句,再次检查这个条件。如果依然是True,执行会再次跳入代码块。如果是False,程序的执行将会跳过它。

1.12 “增长”一个字符串

在while循环里加入新的代码:

while i>=0:
    translated = translated + message[i]
    print(i, message[i], translated)
    i = i - 1
    
print(translated)

通过循环的每次迭代输出i, message[i], translated三个表达式,看translated表示式是怎么增长的:

message = '.daed era meht fo owt fi ,terces a peek nac erehT'
translated = ''

i = len(message) - 1
while i>=0:
    translated = translated + message[i]
    print(i, message[i], translated)
    i = i - 1
    
print(translated)
48 T T
47 h Th
46 e The
45 r Ther
44 e There
43   There 
42 c There c
41 a There ca
40 n There can
39   There can 
38 k There can k
37 e There can ke
36 e There can kee
35 p There can keep
34   There can keep 
33 a There can keep a
32   There can keep a 
31 s There can keep a s
30 e There can keep a se
29 c There can keep a sec
28 r There can keep a secr
27 e There can keep a secre
26 t There can keep a secret
25 , There can keep a secret,
24   There can keep a secret, 
23 i There can keep a secret, i
22 f There can keep a secret, if
21   There can keep a secret, if 
20 t There can keep a secret, if t
19 w There can keep a secret, if tw
18 o There can keep a secret, if two
17   There can keep a secret, if two 
16 o There can keep a secret, if two o
15 f There can keep a secret, if two of
14   There can keep a secret, if two of 
13 t There can keep a secret, if two of t
12 h There can keep a secret, if two of th
11 e There can keep a secret, if two of the
10 m There can keep a secret, if two of them
9   There can keep a secret, if two of them 
8 a There can keep a secret, if two of them a
7 r There can keep a secret, if two of them ar
6 e There can keep a secret, if two of them are
5   There can keep a secret, if two of them are 
4 d There can keep a secret, if two of them are d
3 e There can keep a secret, if two of them are de
2 a There can keep a secret, if two of them are dea
1 d There can keep a secret, if two of them are dead
0 . There can keep a secret, if two of them are dead.
There can keep a secret, if two of them are dead.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值