#include <assert.h> #define N 26 //仿射变换默认模数为26 //加密算法 char *encode(char *c_str, int a, int b, int n); //解密算法 char *decode(char *m_str, int a, int b, int n); //设置数组coprime为存放与n互素的元素 void setCoprime(int coprime[], int n); //获取value1,v...
步骤1:定义加密函数 defaffine_encrypt(text,a,b):encrypted_text=""forcharintext:ifchar.isalpha():# 判断字符是否为字母shift=a*(ord(char)-ord('A'))+b# 应用仿射公式encrypted_char=chr((shift%26)+ord('A'))# 规范字母范围encrypted_text+=encrypted_charelse:encrypted_text+=char# 非字母字符不...
解密函数与加密函数的逻辑类似,只是我们需要使用仿射密码的解密公式:P = (a_inv * (C - b)) % 26,其中P是明文,C是密文,a_inv是a的逆元。 ```python def decrypt(encrypted_text, key): decrypted_text = "" a, b = key a_inv = 0 for i in range(26): if (a * i) % 26 == 1: a...
在仿射密码中,加密的公式为:c = (a * p + b) % 26,其中c为密文,a和b为密钥的参数,p为明文。 ciphertext=""forcharinplaintext:ifchar.isalpha():# 只对字母进行加密ifchar.isupper():p=ord(char)-ord('A')# 将大写字母转换为0-25的数字c=(key*p)%26# 加密ciphertext+=chr(c+ord('A'))#...
1)初步了解古典密码 2)掌握仿射密码的实现 实验方法 根据下图仿射密码(变换)加解密的描述,用所熟悉的语言,完成实验内容、描述实验操作步骤、实验结果与实验心得。 实验环境 计算机语言:Python 开发环境:Pycharm 原理 实验内容 编程实现仿射密码,要求有加密步骤和解密步骤。若输入参数a,b不合法,则报错。
根据仿射密码的实现原理,实现利用仿射密码进行加密和解密的程序。 (1)设计加密程序:能够根据用户输入明文的内容产生加密的密文并输出。 (2)设计解密程序:能够对输入的密文内容破解并输出得到其对应的明文。 # -*- coding: UTF-8 -*- ...