移位密码

  加密C=Ek(m)=m+k mod 26

  解密m=Dk(m)=c-k mod 26

  密钥空间|k|=26=|c|=|m|

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<map>
#include<string>
using namespace std;
map<char,int>letter;
void init()
{
for(int i=;i<=;i++)
{
char l='a'+i;
letter[l]=i;
}
}
void enc(char s[],int k)
{
int len=strlen(s);
string ans="";
for(int i=;i<len;i++)
{
int a=letter[s[i]];
int b=(a+k)%;
ans+=('a'+b);
}
cout<<ans<<endl;
} void solve(char s[])
{
int len=strlen(s);
for(int k=;k<=;k++)
{
string ans="";
for(int i=;i<len;i++)
{
int a=letter[s[i]];
int b=(a+k)%;
ans+=('a'+b);
}
cout<<ans<<" "<<k<<endl;
}
} int main()
{
init();
printf("请输入明文:\n");
char s[],m[];
scanf("%s",&s);
int k;
printf("请输入密钥:\n");
scanf("%d",&k);
printf("输出密文:\n");
enc(s,k);
printf("请输入密文:\n");
scanf("%s",m);
printf("请输明文:\n");
solve(m);
system("pause");
return ;
}

最新文章

  1. LTE Air interface Channels-----http://www.rfwireless-world.com/Tutorials/LTE-logical-transport-physical-channels.html
  2. 用正则验证字符串格式,形如:A)XXX B)XXXX C)XXX
  3. iOS开发优化的25个方案
  4. iOS 进阶 第八天(0407)
  5. [Yii2]Access to debugger is denied due to IP address restriction. The requesting IP address is
  6. 自定义HtmlHelper方法
  7. Android: ADT 23.0.2
  8. jQuery中$.extend(true,object1, object2);深拷贝对象
  9. 关于MATLAB处理大数据坐标文件201762
  10. 客户端putty xshell连接linux中vim不能正常使用小键盘的问题
  11. django三种文件下载方式
  12. javascript 用函数语句和表达式定义函数的区别详解
  13. ubuntu安装docker-ce
  14. 群发技术-使用python3给微信好友群发消息
  15. Linux常用基本命令(chmod)
  16. 数据仓库建模与ETL的实践
  17. @Autowired 和 @Qualifier
  18. 简便开发插件 -- lombok
  19. Apache Commons工具集简介
  20. Caliburn.Micro对目录结构的要求

热门文章

  1. logging模块 旗舰版
  2. 算法与数据结构基础 - 哈希表(Hash Table)
  3. HDP Hive性能调优
  4. ajax具体实现学习记录
  5. HBase MapReduce 一些 ClassNotFoundException 所缺少的jar包
  6. Python学习系列(四)Python 入门语法规则2
  7. C#连接Oracle数据库字符串(引入DLL)
  8. (二十一)c#Winform自定义控件-气泡提示
  9. 阿里、网易和腾讯面试题 C/C++
  10. 最小生成树模板题-----P3366 【模板】最小生成树