‘壹’ c语言编程:三分加密
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
intThree_Parties(char*data,intdata_length)
{
typedefunsignedcharUCHAR;
inti,index;
char*dict;
UCHAR*polybius_index;
//检查讯息的合法性
for(i=0;i<data_length;i++)
{
if(data[i]>='a'&&data[i]<='z')
{
//小写转化为大写
data[i]&=0xDF; //小写字母第5位置为0即变为大写
//data[i]-='a'-'A';//这种写法也可以,但没有上一种效率高
}
elseif(data[i]<'A'||data[i]>'Z')
{
//包含非字母的字符
return1;
}
}
dict="LEOCBFQSTNARGHJUWXDVIKMPYZ/";
polybius_index=(UCHAR*)malloc(3*data_length);
for(i=0;i<data_length;i++)
{
index=strchr(dict,data[i])-dict;
polybius_index[i]=index/9;
index%=9;
polybius_index[i+data_length]=index/3;
polybius_index[i+2*data_length]=index%3;
}
for(i=0;i<3*data_length;i+=3)
{
index=polybius_index[i]*9+polybius_index[i+1]*3+polybius_index[i+2];
data[i/3]=dict[index];
}
free(polybius_index);
return0;
}
intmain(intargc,char*argv[])
{
chardata[]="helloworld";
if(Three_Parties(data,strlen(data))==0)
{
printf("%s",data);
}
else
{
printf("inputerror");
}
return0;
}
//加密部分还可以改成建索引表,那样效率会更高,但代码稍微复杂些。
‘贰’ 用c语言编写一个设置密码的程序
#include "stdio.h"
int* set(void);
int* set(void)
{
int i;
static a[4];
printf("请输入要设置的4位密码 :");
for(i=0;i<4;i++)
{
scanf("%d",&a[i]);
}
return a;
}
int main()
{
int i,*a,b[4];
a=set();
printf("请输入4位密码 :");
for(i=0;i<4;i++)
{
scanf("%d",&b[i]);
}
i=0;
while(i<4)
{
if(a[i]==b[i])
{
printf("%d",a[i]);
i++;
}
else
{
break;
}
}
if(i==4)
{
printf("密码正确\n");
}
else
{
printf("密码错误\n");
}
return 0;
}
‘叁’ c语言字母加密
按照你的要求编写的字母加密的C语言程序如下
(姓字母向后移两位,名字母向后移三位)
#include<stdio.h>
#include<string.h>
int main(){
char src[30],result[]="",ch[2]={'