设计一个加密和解密算法。在对一个从键盘获取的指定字符串采用数组text[128]存储,加密之后存储在数组cryptograph[128]中,并能够对密文解密之后重新存储在数组text中,打印显示密文、明文信息。加密的方式是将字符串中每个字符加上它在字符串中的位置和一个偏移值 5。如:以字符串“mrsoft”为例,第一个字符“m”在字符串中的位置为 0,那么它对应的密文是“'m'+0+5",即 r。 从键盘输入字符串,以回车表示字符串的结束 输出格式: printf("The ciphertext is:
时间: 2023-06-09 19:05:13 浏览: 201
RSA算法,可加密以及解密字符串
4星 · 用户满意度95%
%s\n", cryptograph); //打印密文
printf("The plaintext is: %s\n", text); //打印明文
解密算法的实现代码如下:
void decryption(char *cryptograph, char *text) {
int i, j;
for(i = 0; cryptograph[i] != '\0'; i++) { //遍历密文数组
j = i % 3; //计算偏移量
text[i] = cryptograph[i] - i - j - 5; //解密
}
text[i] = '\0'; //字符串结束标志
}
//在主函数中加入以下代码
printf("Please enter the ciphertext:\n");
fgets(cryptograph, 128, stdin); //获取密文
decryption(cryptograph, text); //解密并存储明文
printf("The ciphertext is: %s\n", cryptograph); //打印密文
printf("The plaintext is: %s\n", text); //打印明文
注意:本算法的安全性较低,仅供学习和研究使用。使用时应采用更为安全和可靠的加密算法。
阅读全文