当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

用C语言编写一个对称加密算法对字符串加密

更新:12-24 整理:39baobao.com
字体:

[C语言字符串函数问题]#include<stdio.h> int strmcpy(char * s, char *t, int m); int main() { char t[100],s[100]; int m; printf("Input a string:"); scanf("%s", t); printf("Input an integer:...+阅读

其实关键点就两个, 1、 如何进行对称位交换 (看我代码中的 SYMM_SWAP 宏) 2、 加密时先 对称交换,然后与key异或, 解密时则先与key异或,然后对称交换。 对此代码有什么不懂,可以baidu hi我。 #include #include /* symmetric bitwise swapping */ #define SYMM_SWAP(ch) ( \ ((ch & 1) << 7) | \ ((ch & (0b10)) << 5) | \ ((ch & (0b100)) << 3) | \ ((ch & (0b1000)) << 1) | \ ((ch & (0b10000)) >> 1) | \ ((ch & (0b100000)) >> 3) | \ ((ch & (0b1000000)) >> 5) | \ ((ch & (0b10000000)) >> 7)) /* define your own key value here */ #define KEY 0x35 int main() { char text[1024] = "hello world, this is the original text!"; int i, len; printf("before encrypt: %s\n", text); len = strlen(text); for(i = 0; i < len; i++) { text[i] = (SYMM_SWAP(text[i]) ^ KEY); } printf("after encrypt: %s\n", text); for(i = 0; i < len; i++) { text[i] ^= KEY; text[i] = SYMM_SWAP(text[i]); } printf("after decrypt: %s\n", text); return 0; }

本文地址:https://www.39baobao.com/show/29_14922.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言字符串操作函数char s1[256]="abcdefg"; char s2[256]="123456"; strupr(s1) //变大写s1就是 ABCDEFG strlwr(s1) //变小写s1就是 abcdefg strlen(s1) //求长度 返回6 strcpy(s1,s2) //拷贝后s...

怎么给易语言的一段代码加密.版本 2 .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .子程序 _按钮1_被单击 .如果 (编辑框1.内容 = “123456”) 信息框 (“密码正确”, 0, “恭喜”) .否则 信息框 (“密码...

易语言怎么加密字符数字.版本 2.支持库 dp1 .程序集 窗口程序集1 .子程序 _按钮1_被单击 ' 这是加密 写配置项 (取运行目录 () + “\配置.ini”, “数据”, “数据1”, 到文本 (加密数据 (到字节集 (编辑框1...

易语言如何加密配置1 常用算法 · 排序算法、查找算法、数值计算方法、字符串处理方法、数据压缩算法、递归算法、图的相关算法 · 算法与数据结构的关系、算法效率、算法设计、算法描述(流程图...

C语言有没有可以计算出字符串中相同字符的个数的函数//计算字符串中相同字符的个数 #include "stdio.h" #include "string.h" int count_str_same(char * p,char ch); int main() { int same_ch; char a[100]; char c; printf("请输...

C语言:将输入的字符串按首字母顺序排列#include<stdio.h> #include<string.h> void sort(char *a[]); void print(char *a[]); int main() { char *a[] ={"ceo","define","basic","abc","empty"}; printf("原来的序列是:\n"); pr...

C语言对一个字符串中字母的排序问题#include #include #include int vowel(char *, char *); main() { char input[100]; char output[100]; scanf("%s",input); printf("input is %s\n", input); vowel(input, ou...

C语言字符串加密#include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { char c[100]; int k; int len,i,temp; scanf("%s",c); scanf("%d",&k); len = (int)strlen(c); k...

C语言:字符串加密的问题//仅供参考 #include <stdio.h> int main() { char vmap[4] = {'m', 'n', 'x', 'y'};//对应0-m, 1-n, 2-x, 3-y; char words[100];//输入的字符串数组 int i, temp; scanf ("%s...