NYOJ770 仿射密码
仿射密码
- 描述
-
仿射密码是替换密码的另一个特例,可以看做是移位密码和乘数密码的结合。其加密变换如下:
E(m)=(k1*m+k2) mod q;(其中k1,k2为密钥,且0<k1,k2<q。k1和q是互素的)。
现已知一经过仿射加密的密文和密钥,请破译出它的明文。
- 输入
-
输入包含不超过1000组数据;
每组数据包含一个由大写字母组成的字符串和两个正整数k1,k2,字符串长度不超过50,0<k1,k2<q。 - 输出
- 每组输出占一行,输出对应的明文。
- 样例输入
-
ILOVEYOU 3 2
- 样例输出
-
CDEPSQEG
- 来源
- 密码系列
- 上传者
-
TC_黄平
#include<stdio.h> #include<string.h> int main() { char s[105];int k1,k2;while(~scanf("%s%d%d",s,&k1,&k2)){int l=strlen(s);for(int i=0;i<l;i++)s[i]=s[i]-'A';for(int i=0;i<l;i++){for(int j=0;;j++){int b=j*26+s[i];if(b-k2<0)continue;if((b-k2)%k1==0){printf("%c",(b-k2)/k1+'A');break;}if((b-k2)/k1>26)break;}}puts("");}return 0; }
NYOJ770 仿射密码相关推荐
- python用表达式解密密文_基于Python解密仿射密码
新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文"DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS" 想解密这个密 ...
- 仿射密码 [GKCTF2020]小学生的密码学
在仿射密码中,加密函数定义为: e(x)=(ax+b)mod26 a,b\inZ_{26}.因为这样的函数被称为仿射函数,所以这样的密码体制也称为仿射密码 符合仿射密码的特征 在线解密 然后将 sor ...
- 仿射密码介绍以及解题脚本
仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母. 加密函数:E(x) = (ax + b) (mod m),其中 a与b互质,其中 a与 ...
- 信息安全之仿射密码加密和解密
本文利用仿射密码,对一个只含可打印字符的txt文件进行加密和解密. //加解密时,文件内容为所有可打印字符,即ASCII码从32-126的95个字符 #include<iostream> ...
- 使用Python解密仿射密码
新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文"DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS" 想解密这个密 ...
- 仿射密码解密(Affine Cipher)
仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母. A B C D E F G H I J K L M N O P Q R S T U V ...
- 【现代密码学】仿射密码加密
//仿射变换主要是乘法与加法变换的结合 //C=a*m+k mod 26 加密 //M=a^-1(c-k)mod 26 解密 #include <iostream> #include< ...
- Python实现仿射密码
仿射密码思路: 1.加解密公式: 2.构造对应字典: 3.代码实现 构造字典,建立映射关系: # 构造字典,'A' --> 0 ... def char_2_num(x):list_s = [] ...
- 仿射密码之加解密及破解
[题目] 1) 实现仿射密码,具体要求: A. 实现仿射密码加密过程,由用户输入密钥,可以对任意输入的明文进行加密: B. 根据用户输入的加密密钥,自动生成解密密钥,并能对加密密文进行解密: C. 实 ...
- 仿射密码加密解密(C语言)
仿射密码是一种古典移位密码,其算法设计时用到的数学基础是模运算和同余方程.它是一个字母对一个字母的加密密码.定义明文空间 P = Z 26 P={\rm Z}_{26} P=Z26 ,密文空间 C ...
最新文章
- [程序员创造力训练 1] 猜单词 - 关于健康
- SpringBoot无法书写主启动类的情况之一
- linux C 列出目录中的文件列表 包含文件的相关信息
- Zookeeper的功能以及工作原理 (转自:http://www.cnblogs.com/felixzh/p/5869212.html)
- ubuntu18.04 VirtualBox 开启虚拟机出错 Kernel driver not installed (rc=-1908)
- 终极JPA查询和技巧列表–第2部分
- 常用算法总结(穷举法、贪心算法、递归与分治算法、回溯算法、数值概率算法)
- 解决办法:configure: error: C compiler cannot create executables错误
- (14)Spring框架----Spring 注解机制和XML配置机制之间的比较
- docker php gd扩展,docker安装php扩展gd库
- 华三交换机配置access命令_华三交换机配置中,shutdown这条命令怎么用?
- A40i使用笔记:使用QT调用aplay播放wav音频/混音
- HTML5后台管理模板
- 英语foteball足球
- 中职一年级计算机学情分析,一年级学情分析.doc
- java五子棋技术路线,一位老码农的编程简史
- 10[粒子系统的实现]
- python画图时,中文无法正常显示的问题,RuntimeWarning: Glyph 26631 missing from current font. font.set_text(s, 0, fl
- HASH和HMAC(3):SHA-1算法原理
- networkx网络拓扑节点图和树,python
热门文章
- MongoDB笔记十四——启动配置详细讲解
- linux下文本处理
- 解决:VB.NET程序中 datagridview 多次绑定出现 的“不能在数据绑定的 DataGridView 控件上设置 ColumnCount...
- mysql count group by_MySQL中使用count与group by 的统计问题
- php出语句,PHP语句_php
- eureka 注册中心高可用失败,没有互为副本
- sql 怎么查一个账号连续登录失败的次数_黑客到底是怎么入侵的,我展示给你看...
- android windowmanager 分析,WindowManagerService
- JavaScript实现秒杀倒计时效果(附源码)
- C# List与Array性能比较