NYOJ 769 乘数密码

#include<stdio.h>
int main()
{
  char s[55];
  int k,i,j;
  while(~scanf("%s%d",s,&k))
  {
    for(i=0;s[i];i++)
    {
      for(j=0;j<26;j++)
      {
        if(s[i]==k*j%26+‘A‘)
        {
          s[i]=j+‘A‘;
          break;
        }
      }
    }
    printf("%s\n",s);
  }
}

时间: 2024-12-18 10:49:55

NYOJ 769 乘数密码的相关文章

NYOJ题目769乘数密码

----------------------------------------- 这道题目是有一点小技巧的,因为取模运算没办法还原所以只好计算所有存储起来然后找映射,但是存储数据的使用场景是解密,再存储从明文到密文的映射就不太合适了,于是就存储从密文到明文的映射,这样子的话解密的时候就可以线性的从密文到明文. AC代码: 1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputSt

nyoj769乘数密码

乘数密码 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 乘数密码也是一种替换密码,其加密变换是将明文字母串逐位乘以密钥k并进行模运算,数学表达式如下: E(m)=k*m mod q,   gcd(k,q)=1 (即k,q互素). 当k与q互素时,明文字母加密成密文字母的关系为一一映射. 现有一经过乘法加密的密文,请破译出它的明文. 输入 输入包含多组数据,不超过1000组. 每组包含一个字符串和一个正整数k,字符串全部由大写字母组成,长度不超过50,k是与q互素的

NYOJ 770 仿射密码

#include<stdio.h>int main(){ char s[55]; int k1,k2; while(~scanf("%s%d%d",s,&k1,&k2)) { for(int i=0;s[i];i++) { for(int j=0;j<26;j++) if(s[i]==(k1*j+k2)%26+'A') { s[i]=j+'A'; break; } } printf("%s\n",s); }}

NYOJ 768 移位密码

#include<stdio.h>#include<string.h>int main(){ int i,m,len; char s[55]; while(~scanf("%s%d",s,&m)) { len=strlen(s); for(i=0;i<len;i++) { s[i]-=m; if(s[i]<'A') s[i]+=26; printf("%c",s[i]); } printf("\n");

古典密码-单表密码体制

如果明文中不同的位置的同一明文字母在密文中对应的密文字母相同,则称其为单表密码体制. 代表性的单表密码: 1.移位或加法密码 2.乘数或乘法密码 3.仿射密码 4.密钥短语密码 下面分别举一个例子: 1.加法密码算法: P=C=K=Zm   (Zm∈{0,1,...,m-1}) Ek(x)=x+k(mod m)=y∈C Dk(y)=y-k(mod m)=x∈P 当k=3时,该密码算法就是凯撒密码. E3(1)=1+3(mod 26)=4   1代表A,4代表D,所以就把明文A加密成D D3(4)

安全知识点

网络安全从其本质上来讲就是网络上的信息安全 技术方面主要是侧重于防范外部非法用户的公告及,管理方面则是侧重于内部人为因素的管理 1.保密性:信息的安全性,即不能将信息泄露给非授权用户. 2.完整性:数据未经授权不能进行改变的特性. 3.可用性:可被授权实体访问并按需求使用的特性. 网络安全包括物理安全.逻辑安全.操作系统安全和联网安全. 网络安全面临的威胁:1.口令圈套 2.破解口令 3.算法考虑不周 4.编辑口令 5.线缆连接威胁(不属于物理威胁) 有害程序有什么?1.病毒 2.代码炸弹 3.

redis配置用户认证密码

1,下载安装 Download, extract and compile Redis with: $ wget http://download.redis.io/releases/redis-3.2.8.tar.gz $ tar xzf redis-3.2.8.tar.gz $ cd redis-3.2.8 $ make 1 2 3 4 5 PS:以前在bin目录下,现在变成了src目录, The binaries that are now compiled are available in t

密码算法详解——AES

0 AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES).AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准. 根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128.AES-192和AES-256.本文主要对AES-128进行介绍,另外两种的思路基本一样,只是轮数会适当增加. 1 算法流程 AES加解密的流程图如下: AES加密过程涉及到4种操作:字节替代(SubBytes).行移位(ShiftRows).列混淆(MixCo

linux 本地账号密码无法登陆,一直返回 登陆的login界面

登陆redhat一直是返回login,账号和密码没错 通过ssh crt类的软件远程连接系统 然后更改文件   vi /etc/pam.d/login 把 :session required /lib/security/pam_limits.so 更改为:session required /lib64/security/pam_limits.so wq保存