c加密
1、在我们的编辑页面输入以下代码。
⑵ C语言怎么加密字符
#include<stdio.h>
#include<string.h>
intmain()
{
charstr[]="00000",str2[]="00000",*p=str,*p2=str2;
printf("输入5个字母:");
while(*p!=0)
{
scanf("%c",p);
if(*p=='
')
continue;
if(*p<'A'||(*p>'Z'&&*p<'a')||*p>'z')//输入验证,必须是字母
{
printf("只能输入字母,请重新输入
");
p=str;
p2=str2;
fflush(stdin);//输入有错重新输入前清空缓冲区。fflush属于c扩展函数,正常使用没问题,如需在linuxggc上使用,考虑多次调用getchar函数来清空
}
else
{
*p2=(*p)+4;
if(*p2>90&&*p2<97)//大写字母加4,最大位不超出
*p2='A'+(*p2-90)-1;
if(*p2>122)//小写字母加4,最大位不超出
*p2='a'+(*p2-122)-1;
p2++;
p++;
}
}
printf("原字符串为:%s
加密后的字符串为:%s
",str,str2);
return0;
}
⑶ c语言加密算法
看你催就仓促写了个,自我感觉写的不是很好,但是能用了。数据只能是大写字母组成的字符串。
加密的时候,输入Y,然后输入要加密的文本(大写字母)
解密的时候,输入N,然后输入一个整数n表示密文的个数,然后n个整数表示加密时候得到的密文。
/*RSA algorithm */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MM 7081
#define KK 1789
#define PHIM 6912
#define PP 85
typedef char strtype[10000];
int len;
long nume[10000];
int change[126];
char antichange[37];
void initialize()
{ int i;
char c;
for (i = 11, c = 'A'; c <= 'Z'; c ++, i ++)
{ change[c] = i;
antichange[i] = c;
}
}
void changetonum(strtype str)
{ int l = strlen(str), i;
len = 0;
memset(nume, 0, sizeof(nume));
for (i = 0; i < l; i ++)
{ nume[len] = nume[len] * 100 + change[str[i]];
if (i % 2 == 1) len ++;
}
if (i % 2 != 0) len ++;
}
long binamod(long numb, long k)
{ if (k == 0) return 1;
long curr = binamod (numb, k / 2);
if (k % 2 == 0)
return curr * curr % MM;
else return (curr * curr) % MM * numb % MM;
}
long encode(long numb)
{ return binamod(numb, KK);
}
long decode(long numb)
{ return binamod(numb, PP);
}
main()
{ strtype str;
int i, a1, a2;
long curr;
initialize();
puts("Input 'Y' if encoding, otherwise input 'N':");
gets(str);
if (str[0] == 'Y')
{ gets(str);
changetonum(str);
printf("encoded: ");
for (i = 0; i < len; i ++)
{ if (i) putchar('-');
printf(" %ld ", encode(nume[i]));
}
putchar('\n');
}
else
{ scanf("%d", &len);
for (i = 0; i < len; i ++)
{ scanf("%ld", &curr);
curr = decode(curr);
a1 = curr / 100;
a2 = curr % 100;
printf("decoded: ");
if (a1 != 0) putchar(antichange[a1]);
if (a2 != 0) putchar(antichange[a2]);
}
putchar('\n');
}
putchar('\n');
system("PAUSE");
return 0;
}
测试:
输入:
Y
FERMAT
输出:
encoded: 5192 - 2604 - 4222
输入
N
3 5192 2604 4222
输出
decoded: FERMAT
⑷ C加密程序怎样加密文件
你加密的目的是什么呢?
你也不把文件给大家看...
我告诉你个办法吧,不需要软件,利用DOS命令就可以达到目的了...
1.在DOS下,随便进入哪个盘(文件夹).
2.用DOS命令创建文件夹(文件夹的名字).
3.在运行里面打开那个文件夹.(会弹开你创建的文件夹)
4.再把想要保密的东西cut进去,正常关闭.
这个文件夹会显示在你的盘符里面,但是不能正常打开,只有用第3步打开.
最后,想删除这个文件夹,也得用DOS命令删除!!
DOS命令你就自己去查吧..呵呵.
⑸ 怎样用C语言加密啊
凯撒密码。我写下,有问题,再找。要保证输入的都是小写字母。
#include<stdio.h>
int
main()
{
char
str[100];
int
i;
scanf("%s",str);
for(i=0;str[i]!='\0';i++)
str[i]=(str[i]-'a'+3)%26+'A';
printf("%s\n",str);
return
0;
}
⑹ C语言 加密算法
#include<stdio.h>
#include<string.h>
#defineMAX_LEN1024
#defineMAX_KEY_LEN10
/*key必须是1-9之间的数字*/
/*拥有K个字符的Key,包含且仅包含1-K*/
intCheckKey(char*key)
{
inti,check[MAX_KEY_LEN]={0};
intmax=strlen(key);
intkeyVal;
for(i=0;i<max;i++)
{
keyVal=key[i]-'0';
if(keyVal>max||keyVal<1)
return0;
if(check[keyVal]==1)
return0;
else
check[keyVal]=1;
}
return1;
}
intEncrypt(char*word,char*key,char*secretWord)
{
inti,start;
intnLenWord=strlen(word);
intnLenKey=strlen(key);
intindex[MAX_KEY_LEN];
if(nLenWord%nLenKey!=0)
{
printf("明文的位数不是密钥位数的整数倍! ");
return0;
}
for(i=0;i<nLenKey;i++)
{
index[i]=key[i]-'0'-1;
}
/*START关键代码*/
start=0;
while(start<nLenWord)
{
for(i=0;i<nLenKey;i++)
{
secretWord[start+i]=word[start+index[i]];
}
start+=nLenKey;
}
secretWord[nLenWord]='