仿射密码

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述

仿射密码是替换密码的另一个特例,可以看做是移位密码和乘数密码的结合。其加密变换如下:

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 仿射密码相关推荐

  1. python用表达式解密密文_基于Python解密仿射密码

    新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文"DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS" 想解密这个密 ...

  2. 仿射密码 [GKCTF2020]小学生的密码学

    在仿射密码中,加密函数定义为: e(x)=(ax+b)mod26 a,b\inZ_{26}.因为这样的函数被称为仿射函数,所以这样的密码体制也称为仿射密码 符合仿射密码的特征 在线解密 然后将 sor ...

  3. 仿射密码介绍以及解题脚本

    仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母. 加密函数:E(x) = (ax + b) (mod m),其中 a与b互质,其中 a与 ...

  4. 信息安全之仿射密码加密和解密

    本文利用仿射密码,对一个只含可打印字符的txt文件进行加密和解密. //加解密时,文件内容为所有可打印字符,即ASCII码从32-126的95个字符 #include<iostream> ...

  5. 使用Python解密仿射密码

    新学期有一门密码学课,课上老师布置了一道密码学题,题目如下: 解密由仿射密码加密的密文"DBUHU SPANO SMPUS STMIU SBAKN OSMPU SS" 想解密这个密 ...

  6. 仿射密码解密(Affine Cipher)

    仿射密码是一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母. A B C D E F G H I J K L M N O P Q R S T U V ...

  7. 【现代密码学】仿射密码加密

    //仿射变换主要是乘法与加法变换的结合 //C=a*m+k mod 26 加密 //M=a^-1(c-k)mod 26 解密 #include <iostream> #include< ...

  8. Python实现仿射密码

    仿射密码思路: 1.加解密公式: 2.构造对应字典: 3.代码实现 构造字典,建立映射关系: # 构造字典,'A' --> 0 ... def char_2_num(x):list_s = [] ...

  9. 仿射密码之加解密及破解

    [题目] 1) 实现仿射密码,具体要求: A. 实现仿射密码加密过程,由用户输入密钥,可以对任意输入的明文进行加密: B. 根据用户输入的加密密钥,自动生成解密密钥,并能对加密密文进行解密: C. 实 ...

  10. 仿射密码加密解密(C语言)

    仿射密码是一种古典移位密码,其算法设计时用到的数学基础是模运算和同余方程.它是一个字母对一个字母的加密密码.定义明文空间 P = Z 26 P={\rm Z}_{26} P=Z26​ ,密文空间 C ...

最新文章

  1. [程序员创造力训练 1] 猜单词 - 关于健康
  2. SpringBoot无法书写主启动类的情况之一
  3. linux C 列出目录中的文件列表 包含文件的相关信息
  4. Zookeeper的功能以及工作原理 (转自:http://www.cnblogs.com/felixzh/p/5869212.html)
  5. ubuntu18.04 VirtualBox 开启虚拟机出错 Kernel driver not installed (rc=-1908)
  6. 终极JPA查询和技巧列表–第2部分
  7. 常用算法总结(穷举法、贪心算法、递归与分治算法、回溯算法、数值概率算法)
  8. 解决办法:configure: error: C compiler cannot create executables错误
  9. (14)Spring框架----Spring 注解机制和XML配置机制之间的比较
  10. docker php gd扩展,docker安装php扩展gd库
  11. 华三交换机配置access命令_华三交换机配置中,shutdown这条命令怎么用?
  12. A40i使用笔记:使用QT调用aplay播放wav音频/混音
  13. HTML5后台管理模板
  14. 英语foteball足球
  15. 中职一年级计算机学情分析,一年级学情分析.doc
  16. java五子棋技术路线,一位老码农的编程简史
  17. 10[粒子系统的实现]
  18. python画图时,中文无法正常显示的问题,RuntimeWarning: Glyph 26631 missing from current font. font.set_text(s, 0, fl
  19. HASH和HMAC(3):SHA-1算法原理
  20. networkx网络拓扑节点图和树,python

热门文章

  1. MongoDB笔记十四——启动配置详细讲解
  2. linux下文本处理
  3. 解决:VB.NET程序中 datagridview 多次绑定出现 的“不能在数据绑定的 DataGridView 控件上设置 ColumnCount...
  4. mysql count group by_MySQL中使用count与group by 的统计问题
  5. php出语句,PHP语句_php
  6. eureka 注册中心高可用失败,没有互为副本
  7. sql 怎么查一个账号连续登录失败的次数_黑客到底是怎么入侵的,我展示给你看...
  8. android windowmanager 分析,WindowManagerService
  9. JavaScript实现秒杀倒计时效果(附源码)
  10. C# List与Array性能比较