题目描述

有一种方式是使用密钥进行加密的方法,就是对明文的每个字符使用密钥上对应的密码进行加密,最终得到密文

例如明文是abcde,密钥是234,那么加密方法就是a对应密钥的2,也就是a偏移2位转化为c;明文b对应密钥的3,就是b偏移3位转化为e,同理c偏移4位转化为g。这时候密钥已经使用完,那么又重头开始使用。因此明文的d对应密钥的2,转化为f,明文的e对应密钥的3转化为h。所以明文abcde,密钥234,经过加密后得到密文是cegfh。

如果字母偏移的位数超过26个字母范围,则循环偏移,例如字母z偏移2位,就是转化为b,同理字母x偏移5位就是转化为c

要求:使用三个指针p、q、s分别指向明文、密钥和密文,然后使用指针p和q来访问每个位置的字符,进行加密得到密文存储在指针s指向的位置。

除了变量定义和输入数据,其他过程都不能使用数组下标法,必须使用三个指针来访问明文、密钥和密文。

提示:当指针q已经移动到密钥的末尾,但明文仍然没有结束,那么q就跳回密钥头

输入

第一行输入t表示有t个测试实例

第二行输入一个字符串,表示第一个实例的明文

第三行输入一个数字串,表示第一个实例的密钥

依次输入t个实例

输出

每行输出加密后的密文

输入样例1

2
abcde
234
XenOS
56

输出样例1

cegfh
CksUX

思路分析

字母加密我们用先加上偏移量,因为有循环偏移,所以再和26取余来完成。
因为密钥也要循环使用,所以密钥也要和自身长度取余使用。

代码

#include<iostream>
#include<string>
using namespace std;
int main()
{int t,i,len;string word,pass,password;char *p=&word[0],*q=&pass[0],*s=&password[0];cin>>t;while(t--){cin>>word>>pass;len=pass.size();for(i=0;i<word.size();i++){if(isupper(*(p+i)))*(s+i)='A'+(*(p+i)+*(q+i%len)-'0'-'A')%26;else*(s+i)='a'+(*(p+i)+*(q+i%len)-'0'-'a')%26;}*(s+i)='\0';cout<<s<<endl;}
}

密钥加密法(指针应用)相关推荐

  1. 【C++】密钥加密法(指针应用)

    题目描述 有一种方式是使用密钥进行加密的方法,就是对明文的每个字符使用密钥上对应的密码进行加密,最终得到密文 例如明文是abcde,密钥是234,那么加密方法就是a对应密钥的2,也就是a偏移2位转化为 ...

  2. C++实验课指针笔记2

    照旧,最后两道题需要记录一下 文章目录 [id:16][20分]D. 动态矩阵(指针与堆内存分配) [id:18][20分]E. 密钥加密法(指针应用## 1.引入库 总结 [id:16][20分]D ...

  3. AES,DES,3DES的区别

    DES 1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES Data Encryption Standard) . 目前在国内,随着三金工程尤其是金卡工程的 ...

  4. DES/3DES/AES加密及区别

    DES 1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES Data Encryption Standard) . 目前在国内,随着三金工程尤其是金卡工程的 ...

  5. 全国计算机等级考试(三级网络)基本概念与名词解释

    一.计算机基础知识部分 1.         计算机系统发展历程:电子管计算机.晶体管计算机.集成电路计算机.大规模及超大规模集成电路计算机. 2.         电子计算机时代开始的标志:以美国1 ...

  6. 计算机等级考试(三级网络)基本概念与名词解释

    计算机等级考试(三级网络)基本概念与名词解释 作者:yt125 发表时间: 2005/07/26 22:04 点击:1329次 发帖得万元!   活动官方论坛 修改  精华  删除  置顶  来源   ...

  7. java基础知识精华总结 java面试题 深圳酷琪 kuuqii.com 电脑配件软件 硬件一体化采购平台

    1.文件拷贝,把一个文件的内容拷贝到另外一个文件里 package order; import java.io.File; import java.io.FileInputStream; import ...

  8. 3DES文件加密程序

    参照<<密码学引论>> 第二版 张焕国 王张宜编著这本书,用MFC编写的框架,实现的使用3DES对文件进行加解密的程序 转载请说明来源 : enjoy5512的博客 http: ...

  9. DES/3DES/AES区别

    DES/3DES/AES区别 公元前400年,古希腊人发明了置换密码.1881年世界上的第一个电话保密专利出现.在第二次世界大战期间,德国军方启用"恩尼格玛"密码机,密码学在战争中 ...

最新文章

  1. Java线程池了解一下
  2. harmonyos2.0开发者beta,华为鸿蒙 HarmonyOS 2.0 手机开发者 Beta 活动(广州站)报名开启...
  3. 用python编写的无线AP扫描器
  4. TensorFlow学习笔记(十四)TensorFLow 用mnist数据做classification
  5. Docker最全教程之使用 Visual Studio Code玩转Docker(二十一)
  6. mysql的存储过程放在哪里_mysql存储过程,这个错在哪里?
  7. shell生成随机数+判断路径存不存在+判断文件夹有无内容
  8. Java只用一个循环语句输出九九乘法表
  9. 开启中国区块链创造季! 2019区块链开发者大会来袭!(首批重磅嘉宾曝光)
  10. hdfs 多租户_Hadoop多租户架构配置
  11. scratch绳子算法 少儿编程电子学会图形化编程scratch等级考试四级真题和答案解析2021-3
  12. S3C2440-裸机篇-01 | JZ2440开发板快速上手
  13. Make Your First GAN With PyTorch:1.PyTorch基础
  14. 一元二次方程求解的实现
  15. JetBrains全家桶软件
  16. 风云叱咤,尚硅谷云原生实战教程(下篇)发布
  17. Android手机安装Ubuntu系统作为服务器
  18. 1:输出1-100之内的所有质数
  19. nginx启动报 server name * has suspicious symbols
  20. 【Creator Kit - RPG 代码分析】(4)-游戏玩法-对话框、云朵系统、帧序列动画控制器、动画状态回调、音乐控制

热门文章

  1. conda SSL错误
  2. safari 浏览器版本升级后提示“此网页出现问题,已重新载入网页” 解决办法
  3. 阿里 卫哲谈阿里人力招聘价值观
  4. 【转载】BAPI_GOODSMVT_CREATE FUNCITON FOR MIGO 各种移动类型 源代码参考
  5. 小白学习Basemap气象画地图的第五天(读取micaps站点数据,省级能见度分布)
  6. 软件测试课程设计——智云云盘
  7. 2021年焊工(初级)考试资料及焊工(初级)复审考试
  8. java backoff_Java BackOff类代码示例
  9. 如何将FLV格式视频转换成高清MP4格式方法
  10. 移动端APP测试总结(二)