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");
  }
}

时间: 2024-10-14 14:00:49

NYOJ 768 移位密码的相关文章

移位密码

描述 移位密码是最简单的一类代替密码,具体算法就是将字母表的字母右移k个位置(k<26),并对字母表长度作模运算. 现给你一串密文,全部由大写字母组成.已知加密过程为:将每个字母按照字母表的顺序右移k位. 加密函数:E(m)=(m+k)%q. 请破译出明文! 输入 输入包含多组测试数据(少于1000组).每组数据包含一个字符串和一个整数k(k<26),中间用空格隔开,字符串全部由大写字母组成,长度小于50,k表示向右移动的位数. 输出 输出每组密文所对应的明文,每组输出占一行. 样例输入 JM

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); }}

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-移位密码

移位密码 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描述 移位密码是最简单的一类代替密码,具体算法就是将字母表的字母右移k个位置(k<26),并对字母表长度作模运算. 现给你一串密文,全部由大写字母组成.已知加密过程为:将每个字母按照字母表的顺序右移k位. 加密函数:E(m)=(m+k)%q. 请破译出明文! 输入 输入包含多组测试数据(少于1000组). 每组数据包含一个字符串和一个整数k(k<26),中间用空格隔开,字符串全部由大写字母组成,长度小于50,k表

维吉尼亚密码的Python实现

代换密码体制的一般定义为M=C=K=Z26,其中M为明文空间.C为密文空间.K为密钥空间.Z26为26个整数(对应26个英文字母)组成的空间:要求26个字母与模26的剩余类集合{0,1,2,-,25}建立一一对应的关系. 1.移位密码 移位密码的加密实现上就是将26个英文字母向后循环移动k位,其加解密可分别表示为: c=Ek(m)=m+k(mod 26) m=Dk(c)=c-k(mod 26) 其中,m.c.k是满足0≤m,c,k≤25的整数. 2.维吉尼亚密码 Vigenenre密码是最著名的

古典密码-多表密码体制

如果明文中不同的位置的同一明文字母在密文中对应的密文字母不同,则称为多表密码体制. 代表性的多表密码: 1.Vigenere密码 2.Beaufort密码 3.running-key密码 4.Vernam密码 5.Hill密码 例子: 1.Vigenere密码加密: 设明文   m=m1m2...mn 密钥      k = k1k2...kn 则密文   c=Ek(m)=c1c2...cn 其中      ci=(mi+ki)(mod 26),(i=1,2,...,n) Vigenere密码解

FreeCodeCamp之凯撒密码

下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码.移位密码也就是密码中的字母会按照指定的数量来做移位.一个常见的案例就是ROT13密码,字母会移位13个位置.由'A' ? 'N', 'B' ? 'O',以此类推. 学习使用String.fromCharCode()和string.charCodeAt()注意第一个为静态方法,不能定义一个字符串然后使用他,像这样myStr.fromCharCode();是错误的,只能是String.fromCharCode(number1,

单表代替密码原理及算法实现

   要了解单表替代密码就得先了解替代密码,在这里我就做一下简单的介绍:      替代是古典密码中用到的最基本的处理技巧之一 .      替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文,替代密码的密钥就是其替换表.      根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码和多表替代密码.      单表替代密码的密码算法加解密时使用一个固定的替换表.单表替代密码又可分为一般单表替

CTF中常见密码题解密网站总结

0x00.综合 网站中包含大多编码的解码. http://web2hack.org/xssee/ https://www.sojson.com/ http://web.chacuo.net/ 0x01.文字倒序排列 http://www.qqxiuzi.cn/zh/daoxu/ 0x02.cmd5解密 http://www.cmd5.com/ http://pmd5.com/ http://tool.chinaz.com/Tools/MD5.aspx http://md5jiami.51240.