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

时间: 2024-10-26 07:43:40

NYOJ 770 仿射密码的相关文章

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

本文利用仿射密码,对一个只含可打印字符的txt文件进行加密和解密. //加解密时,文件内容为所有可打印字符,即ASCII码从32-126的95个字符 #include<iostream> #include<fstream> using namespace std; //加密类 class Encrypt { public: void set_AB(int a, int b) {A = a; B = b;} //设置加密密钥 int gcd(int a, int b) { while

简单的加密与解密的实现---仿射密码

#include <iostream> #include <string.h> using namespace std; int main() {     void encrytion_decrypt(char input[],int len);     char input[10];     cout<<"Please input password:";     cin>>input;     int len;     len=strl

简单的加密与解密的实现---仿射密码(c++使用string)

使用c++中string类,相比于使用数组,没有了数组长度的限制,而且操作跟加的方便 #include <iostream> #include <string> using namespace std; string jiami(string str,int k,int b); string jiemi(string pass,int k,int b); int canshu(int k,int b); int main() {     string str;     //明文  

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

仿射密码加密解密文件流

#include<iostream> #include<string> #include<fstream> #include<Windows.h> using namespace std; class PWoper { string inpatch; string outpatch; public: PWoper(string in, string out) { inpatch = in; outpatch = out; } void encrypt() {

密码学基础知识(三)古典密码

说完了前面那些,想起个事,本系列依据内容主要来自<现代密码学>马春光编著.我就是学这本书的. 好了,古典密码就是古时候的密码,哈哈,逗你玩的,shannon的保密系统的通信理论发表前的都是古典密码,会在密码学简史中介绍这位牛人的. 学习古典密码学的意义:学习设计原理和分析方法 古典密码也是,俩门派:置换和代换,顾名思义,一个是换了个原来有的,一个是换了个原来没有的.学术点讲就是前者明文和密文空间一样,后者 不一样.你要是问我啥是明文空间和密文空间啊,我就呵呵.是M 和 C.m明文的集合,c密文

古典密码-单表密码体制

如果明文中不同的位置的同一明文字母在密文中对应的密文字母相同,则称其为单表密码体制. 代表性的单表密码: 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)

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

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