信息安全很重要,特别是密字符串s的每个字符变为它后面的第k个字符,其中k是n的每一个数位上的数字。第一个字符对应n的万位上的数字,最后一个字符对应n的个位上的数字。用c语言
时间: 2024-05-12 14:19:57 浏览: 50
实现这个加密算法。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
void encrypt(char *str, int n);
int main() {
char str[MAX_LEN];
int n;
printf("请输入字符串:\n");
scanf("%s", str);
printf("请输入密钥n:\n");
scanf("%d", &n);
encrypt(str, n);
printf("加密后的字符串为:%s\n", str);
return 0;
}
void encrypt(char *str, int n) {
int len = strlen(str);
int digit, k, i;
for (i = 0; i < len; i++) {
digit = n % 10;
k = (str[i] - 'a' + digit) % 26;
str[i] = k + 'a';
n /= 10;
}
}
```
输入一个字符串和一个密钥n,调用encrypt函数进行加密操作,将加密后的字符串输出。在encrypt函数中,首先计算出n的每个数位上的数字,然后对字符串的每个字符进行加密操作,将字符转换为它后面第k个字符,其中k为该字符在字符串中的位置加上n的当前数位上的数字,再将加密后的字符替换原来的字符。注意,这里假设原字符串只包含小写字母,如果要支持更多的字符集,需要做一些修改。
阅读全文