导学单 | 数据安全之凯撒密码阶段学习

导学单 | 数据安全之凯撒密码阶段学习

一、学习目标

计算思维提升:

学生理解了凯撒密码的基本原理,学会通过代码实现简单的加密过程。

编程能力提升:

学生学到了字符串的基本操作和条件语句的使用。

二、“三位”

1、自然语言描述: 介绍基本的凯撒密码原理,即将每个字母按照一个固定的位移量进行替换。学生需要理解替换的规则和原理。

位移量:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
                          
abcdefghijklmnopqrstuvwxyz
                          

2、流程图设计: 合作设计展示凯撒密码加密过程的流程图。

开始节点

|

接收用户输入(明文)

|

输入位移量

|

替换每个字母

|

输出密文

|

结束

3、编码实现: 读懂代码,将流程图中的步骤转化为实际程序。

def caesar_cipher(plaintext, shift):
    ciphertext = ""
    for char in plaintext:
        if char.isalpha():
            # 判断是大写还是小写字母
            is_upper = char.isupper()
            # 将字母按照位移量进行替换
            char = chr((ord(char) - ord('A' if is_upper else 'a') + shift) % 26 + ord('A' if is_upper else 'a'))
        ciphertext += char
    return ciphertext

# 用户输入明文和位移量
plaintext = input("输入明文: ")
shift = int(input("输入位移量: "))

# 加密明文
ciphertext = caesar_cipher(plaintext, shift)
print(f"密文: {ciphertext}")

三、代码体验之数据解密大挑战

1、使用中小学信息科技平台登陆账号,根据教师的要求,运行代码并对明文进行加密

选择备选明文实例——发布密文

2、挑战者在平台上找到密文并在规定范围内(shift<5)的情况下,对密文进行解密。

解密——求shift值,发布明文

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注