编写程序,对输入字符密码进行加密输出,并解密显示。加密规则:对任一字符加上整数n(n为随机整数,1<=n<=10)后所得字符即为加密后字符。用c++语言表示
时间: 2024-05-26 11:11:03 浏览: 200
#include <stdio.h>
#include <stdlib.h>
int main() {
char password[100];
int n;
printf("请输入密码:\n");
scanf("%s", password);
n = rand() % 10 + 1;
printf("加密后的密码为:\n");
for (int i = 0; password[i] != '\0'; i++) {
printf("%c", password[i] + n);
}
printf("\n");
printf("解密后的密码为:\n");
for (int i = 0; password[i] != '\0'; i++) {
printf("%c", password[i] - n);
}
printf("\n");
return 0;
}
相关问题
编写程序对输入字符密码进行加密输出,并解密显示。加密规则:对任一字符加上整数n(n为随机整数,1<=n<=10)后所得字符即为加密后字符。
这是一个很好的编程问题,我可以为您提供一些指导。
加密(encryption)和解密(decryption)都是基于某种规则的转换过程。在这个问题中,加密规则是对输入字符加上随机整数n,得到加密后字符;解密规则是对加密后字符减去n,得到原始字符。
您可以使用ASCII码表对字符进行转换。对于任一字符,它对应的ASCII码可以用一个整数来表示。加密过程可以表示为:ciphertext = plaintext + n;解密过程可以表示为:plaintext = ciphertext - n。
下面是一个简单的Python程序示例:
```python
import random
def encrypt(msg):
n = random.randint(1, 10)
return ''.join([chr(ord(c) + n) for c in msg]), n
def decrypt(ciphertext, n):
return ''.join([chr(ord(c) - n) for c in ciphertext])
# 示例用法:
message = 'Hello, world!'
encrypted_message, n = encrypt(message)
print(f'加密后的密文:{encrypted_message}')
decrypted_message = decrypt(encrypted_message, n)
print(f'解密后的明文:{decrypted_message}')
```
这个程序会生成一个随机整数n作为加密密钥,对输入的字符串进行加密,并输出密文和密钥。解密过程需要输入密文和密钥,程序会输出明文。
c语言编写程序,对输入字符密码进行加密输出,并解密显示。加密规则:对任一字符加上整数n(n为随机整数,1<=n<=10)后所得字符即为加密后字符。
可以的,这个问题属于程序设计方面的问题,我可以回答。下面是加密和解密的C语言程序示例:
```c
#include <stdio.h>
int main() {
char password[100];
int n;
printf("请输入要加密的密码:");
scanf("%s", password);
printf("请输入加密密钥n(1<=n<=10):");
scanf("%d", &n);
// 加密
for (int i = 0; password[i] != '\0'; i++) {
password[i] = (password[i] + n) % 127; // 对字符加上n并取模
}
printf("加密后的密码:%s\n", password);
// 解密
for (int i = 0; password[i] != '\0'; i++) {
password[i] = (password[i] - n + 127) % 127; // 对字符减去n并取模
}
printf("解密后的密码:%s\n", password);
return 0;
}
```
上面这段程序可以实现对输入的密码进行加密和解密,并输出结果。其中,加密的规则是将每个字符加上随机整数n(1<=n<=10)后取模,解密的规则是将加密后的字符减去n(即加上-n)后取模。
注意,这里使用了取模运算符%,保证加密后和解密后的字符都在可见字符范围内(ASCII码表中,可见字符的编码范围是32-126)。
阅读全文