173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

c语言加密算法代码

keros@mark 2022-10-15 资讯中心

本篇文章给大家谈谈c语言加密算法代码以及对应的知识点,希望对各位有所帮助。

本文目录一览

C语言 加密算法

#include stdio.h

#include string.h

#define MAX_LEN 1024

#define MAX_KEY_LEN 10

/* key必须是1-9之间的数字 */

/* 拥有K个字符的Key,包含且仅包含1-K */

int CheckKey(char*key)

{

int i,check[MAX_KEY_LEN]={0};

int max=strlen(key);

int keyVal;

for(i=0; imax; i++)

{

keyVal = key[i]-'0';

if(keyVal  max || keyVal  1)

 return 0;

if(check[keyVal]==1)

 return 0;

else

 check[keyVal] = 1;

}

return 1;

}

int Encrypt( char* word, char* key, char* secretWord )

{

int i,start;

int nLenWord = strlen(word);

int nLenKey = strlen(key);

int index[MAX_KEY_LEN];

if(nLenWord % nLenKey != 0)

{

printf("明文的位数不是密钥位数的整数倍!\n");

return 0;

}

for(i=0; inLenKey; i++)

{

index[i] = key[i] - '0' -1;

}

/*START 关键代码*/

start = 0;

while(start  nLenWord)

{

for(i=0;inLenKey;i++)

{

 secretWord[start + i] = word[start + index[i]];

}

start += nLenKey;

}

secretWord[nLenWord] = '\0';

/* END 关键代码*/

return 1;

}

int main()

{

char word[MAX_LEN];

char key[MAX_KEY_LEN];

char secretWord[MAX_LEN];

printf("请输入明文:");

scanf("%1024s",word);

printf("请输入密钥:");

scanf("%10s",key);

if(!CheckKey(key))

{

printf("密钥输入错误!\n");

exit(-1);

}

if(Encrypt(word,key,secretWord))

       printf("密文是:%s\n",secretWord);

return 0;

}

C语言编程代码加密

例如:简单的移位加密可以这样

FILE *fp=fopen("test.txt","r");

FILE *fp1=fopen("new.txt","w");

while((c=fgetc(fp))!=EOF)

fputc(c+1,fp1);//逐个读取全部字符,ASCII值+1并保存到另一个文件

然后可以remove("test.txt");//删除文件

或者读取new.txt再写回test.txt

解密就是ASCII值-1

用c语言设计一个简单地加密算,解密算法,并说明其中的原理

可能很长 ,这是在我以前一个程序里摘出来的。

原理:用户输入创建密码,机器读取,并把每一位密码进行加密,这里就是把每一位的 ASCII码加一(也可以有其他的加密方式),然后保存在文件里。解密时从文件中读取保存的乱码,然后把它每一位的ascII码减一 在与你输入的密码比较,正确既可以进入。

#define CODE_SIZE 10

int password()

{

FILE *fp;

char s1[CODE_SIZE], s2[CODE_SIZE], s3[CODE_SIZE], fun;

while (1)

{

fp = fopen("password.txt", "r");

if (fp == NULL)

{

printf("第一次运行,请输入初始密码(最多8位):\n");

scanf("%s", s1);

printf("请再次输入初始密码:\n");

scanf("%s", s2);

if (strcmp(s1, s2) == 0)

{

fp = fopen("password.txt", "w+");

if (fp == NULL)

{

printf("创建文件失败退出\n");

getch();

exit(1);

}

else

{

//对s1加密

for (int i = 0; iCODE_SIZEs1[i] != ' '; i++)

{

s1[i] = s1[i] + i;

}

fputs(s1, fp);

printf("初始密码创建完成.\n");

}

}

else

{

printf("两次输入的密码不一致!\n");

}

fclose(fp);

}

else

{

fgets(s1, CODE_SIZE, fp);

fclose(fp);

printf("输入密码:\n");

scanf("%s", s2);

//对s1解密

for (int i = 0; iCODE_SIZEs1[i] != ' '; i++)

{

s1[i] = s1[i] - i;

}

loop:

if (strcmp(s1, s2) == 0)

{

printf("-----密码正确-----\n");

printf("-----请选择功能-----\n");

printf("-----1:修改密码-----\n");

printf("-----2:进入通讯录-----\n");

scanf("%d", fun);

switch (fun)

{

case 1: printf("请输入新密码\n");

scanf("%s", s1);

printf("请再次输入新密码\n");

scanf("%s", s2);

if (strcmp(s1, s2) == 0)

{

fp = fopen("password.txt", "w+");

if (fp == NULL)

{

printf("文件错误!\n");

}

else

{ //对s1加密

for (int i = 0; iCODE_SIZEs1[i] != ' '; i++)

{

s1[i] = s1[i] + i;

}

fputs(s1, fp);

fclose(fp);

printf("密码修改成功\n");

}

}

else

{

printf("两次输入的密码不一致,修改失败\n");

}

break;

case 2: return 1;

default: printf("无效指令\n");

}

}

else

{

printf("密码错误\n请重新输入\n");

scanf("%s", s2);

goto loop;

}

}

printf("------------------\n\n\n\n");

}

}

多表式密码对密文加密解密算法的c语言代码

#includestdio.h

#includestring.h

void MtoC(char m[50],char k[10],char c[50])

{

int m1[50],k1[10],c1[50],i,j;

for(i=0;istrlen(k);i++)

k1[i]=k[i]-'a';

for(j=0;jstrlen(m);j++)

{

m1[j]=m[j]-'a';

c1[j]=(m1[j]+k1[j%strlen(k)])%26;

c[j]=c1[j]+'a';

printf("%c------%c\n",m[j],c[j]);

}

}

void CtoM(char c[50],char k[10],char m[50])

{

int m1[50],k1[10],c1[50],i,j;

for(i=0;istrlen(k);i++)

k1[i]=k[i]-'a';

for(j=0;jstrlen(m);j++)

{

c1[j]=c[j]-'a';

m1[j]=(c1[j]-k1[j%strlen(k)]+26)%26;

m[j]=m1[j]+'a';

printf("%c------%c\n",c[j],m[j]);

}

}

int main(void)

{

int i,j;

char m[50], k[10], c[50],t[50];

printf("输入明文:");

gets(t);

j=0;

for(i=0;t[i]!='\0';i++){

if(t[i]='Z't[i]='A'){

m[j]=t[i]+32;

j++;

}

else if(t[i]='z't[i]='a'){

m[j]=t[i];

j++;

}

}

m[j]='\0';

printf("输入密钥:");

scanf("%s",k);

printf("明文转换为密文:n");

MtoC(m,k,c);

printf("密文转换为明文:n");

CtoM(c,k,m);

}

智能化时代的到来涉及了各种核心算法,保护算法就能保障开发者权益,杜绝市面上各种山寨品,加密芯片恰好能起到很好的保护作用,如何选择加密芯片呢?KEROS加密芯片专注于加密领域十余年,行业首选。
1.安全性:采用国际通用aes256算法加密并同时通过KAS传送,除基本认证之外,利用2K安全EEPROM,用户可以自己管理密钥和数据,实现双重保护。
2.唯一性:以定制的方式为每一位用户单独定制“专属型号CID”,多用户之间算法不兼容,并且采用固化的方法直接将算法固化到晶圆上而无需烧入。
3.序列号:每颗芯片制造生产时具有5字节全球唯一SN序列号,每颗芯片SN都不会重复。
4.防抄特性:每颗芯片都有自己独特的密钥系统,破解单颗芯片只对这颗芯片对应的产品有效,对整个同类型的产品是无效的,依旧无法通过验证。而且KEROS采用ASIC方法设计,芯片内为纯逻辑电路,封装内有40多层逻辑电路整合了10万多个逻辑门,爆力刨片破解难度可想而知。
5.安全存储:用户可以将保密数据加密之后安全的存放到EEPROM中。c语言加密算法代码的介绍就聊到这里吧,感谢你花时间阅读本站内容。

本文标签:c语言加密算法代码

产品列表
产品封装
友情链接