帮我用C语言写一个栅栏密码加密个人姓名
时间: 2023-05-12 21:04:09 浏览: 172
好的,以下是一个简单的栅栏密码加密个人姓名的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void encrypt(char *name, int key) {
int len = strlen(name);
char encrypted[len];
int index = 0;
for (int i = 0; i < key; i++) {
for (int j = i; j < len; j += key) {
encrypted[index++] = name[j];
}
}
encrypted[index] = '\0';
printf("加密后的姓名为:%s\n", encrypted);
}
int main() {
char name[100];
int key;
printf("请输入要加密的姓名:");
scanf("%s", name);
printf("请输入栅栏数:");
scanf("%d", &key);
encrypt(name, key);
return 0;
}
```
输入要加密的姓名和栅栏数后,程序会输出加密后的姓名。注意,这个加密算法并不是很安全,只是一个简单的示例。
相关问题
帮我用c语言写一个栅栏加密,加密个人姓名拼音
好的,我可以回答这个问题。以下是一个简单的栅栏加密的 C 语言代码,可以加密个人姓名拼音:
```c
#include <stdio.h>
#include <string.h>
void encrypt(char *str, int key) {
int len = strlen(str);
char result[len];
int row = key, col = (len + key - 1) / key;
char matrix[row][col];
memset(matrix, ' ', sizeof(matrix));
int idx = 0;
for (int j = 0; j < col; j++) {
for (int i = 0; i < row; i++) {
if (idx < len) {
matrix[i][j] = str[idx++];
}
}
}
idx = 0;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
result[idx++] = matrix[i][j];
}
}
result[len] = '\0';
printf("加密后的结果为:%s\n", result);
}
int main() {
char name[] = "zhangsan";
int key = 3;
printf("原始字符串为:%s\n", name);
encrypt(name, key);
return 0;
}
```
这个代码中,我们定义了一个 `encrypt` 函数,接受一个字符串和一个密钥作为参数。在函数中,我们首先计算出栅栏加密矩阵的行数和列数,然后将字符串填充到矩阵中。最后,我们按照列优先的顺序将矩阵中的字符取出,得到加密后的结果。
在 `main` 函数中,我们定义了一个字符串和一个密钥,然后调用 `encrypt` 函数进行加密。你可以将字符串和密钥替换成你自己的,来进行加密。
帮我用c语言写一个凯撒加密个人姓名
好的,我可以为您提供一个简单的凯撒加密个人姓名的 C 语言代码示例:
```c
#include <stdio.h>
#include <string.h>
void caesar_encrypt(char *str, int key) {
int i;
for (i = ; i < strlen(str); i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
str[i] = 'a' + (str[i] - 'a' + key) % 26;
} else if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] = 'A' + (str[i] - 'A' + key) % 26;
}
}
}
int main() {
char name[100];
int key;
printf("请输入您的姓名:");
scanf("%s", name);
printf("请输入加密密钥:");
scanf("%d", &key);
caesar_encrypt(name, key);
printf("加密后的姓名为:%s\n", name);
return ;
}
```
这个程序会要求用户输入姓名和加密密钥,然后使用凯撒加密算法对姓名进行加密,并输出加密后的结果。注意,这个程序只是一个简单的示例,实际使用中需要考虑更多的安全性和实用性问题。