用C语言进行简单密码加密,现有数字字符英文字母组成的4位明文,组成新的密码输出形式为字母-数字形式。密码加密规则:每个数字字符输出其后2位的数字,每个英文字符输出其后3位的字母(本题仅考虑小写引文字母),例如:’8’对应’0’,’9’对应’1’,’x’对应’a’, ’z’对应’c’。
时间: 2023-05-24 14:01:48 浏览: 304
以下是对应的C代码:
```
#include <stdio.h>
#include <string.h>
void encrypt(char plaintext[], char password[]) {
int length = strlen(plaintext);
for(int i=0; i<length; i++) {
if(plaintext[i] >= '0' && plaintext[i] <= '9') {
password[i*2] = plaintext[i] + 2;
if(password[i*2] > '9') {
password[i*2] = password[i*2] - 10;
}
password[i*2+1] = (plaintext[i] + 1) % 10 + '0';
} else if(plaintext[i] >= 'a' && plaintext[i] <= 'z') {
password[i*2] = plaintext[i] + 3;
if(password[i*2] > 'z') {
password[i*2] = password[i*2] - 26;
}
password[i*2+1] = (plaintext[i] + 1 - 'a') % 26 + 'a';
}
}
password[length*2] = '\0';
}
int main() {
char plaintext[5];
char password[9];
printf("请输入四位明文:\n");
scanf("%s", plaintext);
encrypt(plaintext, password);
printf("加密后的密码为:%s\n", password);
return 0;
}
```
这段代码将用户输入的4位明文加密,输出相应的密码,格式为字母-数字形式。如果用户输入的字符中包含数字字符,则输出数字字符后两位的数字;如果用户输入的字符中包含小写英文字母,则输出英文字母后三位的字母。
阅读全文