当前位置:首页 » 密码管理 » c的密码加密

c的密码加密

发布时间: 2022-03-03 23:52:38

c语言实现密码加密

unsignedchar*encrypt(unsignedchar*psw,intenc){
intsum=0,i;
if(enc){
for(i=0;i<6;i++){
psw[i]-=15;
sum+=psw[i];
}
psw[6]=(unsignedchar)sum;
psw[7]=0;
}
else{
for(i=0;i<6;i++){
sum+=psw[i];
psw[i]+=15;
}
if((unsignedchar)sum!=psw[6]){
printf("Badpassword ");
psw[0]=0;
returnpsw;
}
else{
psw[6]=0;
}
}
for(i=0;i<3;i++){
unsignedchart=psw[i];
psw[i]=psw[5-i];
psw[5-i]=t;
}
returnpsw;
}

intmain()
{
unsignedcharpsw[128];
scanf("%s",psw);
printf("encodeto:%s ",encrypt(psw,1));
printf("decodeto:%s ",encrypt(psw,0));
return0;
}

② 用C语言设计一个加密 解密 密码 的程序。

// playFair 加密 你参考下 ...
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#define x 50
char MiYao[x],PassWord[x],AddPass[x],Table[5][5],Map[25];
bool Visit[27]={false};
char English[27]="abcdefghijklmnopqrstuvwxyz";
void Input()
{
printf("请输入密钥:\t"); scanf("%s",MiYao);
printf("请输入待加密密码:\t"); scanf("%s",PassWord);
}
void Fun_5x5()
{
int count = 0,V =0;
/*标记密钥内字符为: true*/
for(int i=0;MiYao[i]!='\0';i++)
if(strchr(English,MiYao[i])!=NULL)
Visit[strchr(English,MiYao[i])-English] = true;
/*执行密钥矩阵操作 并标记已使用字符:true*/
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
{
if(count<strlen(MiYao))
Table[i][j] = MiYao[count++];
else
{
while(Visit[V] != false) V++;
Table[i][j] = English[V];
Visit[V++] = true;
}
}
puts("∞∞∞密钥矩阵为∞∞∞");
for(int i=0;i<5;i++)
{ for(int j=0;j<5;j++)
printf("%3c",Table[i][j]);
puts("");
}
puts("∞∞∞∞∞∞∞∞∞∞∞");

}
int IsVisited(char ch)
{
return Visit[strchr(English,ch)-English]; //false 未出现过
}
void TabletoMap()
{ int count=0;
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
Map[count++]=Table[i][j];
Map[count]='\0';
}
void Judge()
{
int len = strlen(PassWord),i,j,k;
memset(AddPass,0,sizeof(char));
/*一对对去字母,剩下单个字母,则不变化,直接放入加密串中.*/
if(len%2){
AddPass[len-1] = PassWord[len-1];
len -=1;
}
/*一对中 密钥矩阵中 存在矩阵 eg.ab 先输出a同行顶点在输出b同行顶点*/
int row1,low1,row2,low2,a1,a2;
for(i=0;i<len;i+=2)
{
char c1,c2;
c1 = PassWord[i];
c2 = PassWord[i+1];
/*一对中 两字母相同 无变化*/
/*一对中 有字母不在密钥矩阵中 无变化*/
if(c1 == c2 || ( !IsVisited(c1)||!IsVisited(c2)))
{ AddPass[i] = c1;
AddPass[i+1]=c2;
}else{
a1 = strchr(Map,c1)-Map;
row1 = a1/5; low1 = a1%5;
a2 = strchr(Map,c2)-Map;
row2 = a2/5; low2 = a2%5;
/*一对中 字符出现在同行或同列 简单swap字符*/
if(row1 == row2 || low1 == low2)
{
AddPass[i] = c2;
AddPass[i+1] = c1;
}else{
AddPass[i] = Table[row1][low2];
AddPass[i+1] = Table[row2][low1];
}
}
}AddPass[len+1]='\0';
puts("加密后字符串:");
puts(AddPass);
puts("原串是:");
puts(PassWord);
}
int main()
{
Input();
Fun_5x5();
TabletoMap();
Judge();
return 0;
}

③ C语言输入密码将其加密怎么弄

int
main()
{
c1=
getchar();
:

c6=
getchar();
c1=c1+20;
:
c6=c6+20;
putchar(c1);
:
putchar(c6);
}
程序大概这个样子,有什么问题再追问,手机码字还有这破输入法,写得很难受

④ C语言密码加密{(回车与删除怎么实现)跪求}

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main()
{
char key[8]={0};//接受8位数密码
char ch=0;
int i=0,j=0;//循环变量
int number=0;//选择功能键的变量
char temp=0;
printf("〓〓〓〓〓〓〓〓〓〓〓〓〓【密码加密系统】〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf("\n〖⒈显示密码〗\n");
printf("〖⒉加密密码〗 \n");
printf("〖⒊解密密码〗 \n");
printf("〖⒋退出程序〗 \n");
printf("\n〓〓〓〓〓〓〓〓〓〓〓〓〓【密码加密系统】〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");
printf("请输入8位密码:");
for(i=0;i<8;i++)
{
ch=getch();
key[i]=ch;
printf("*");
}
while(1)
{
printf("\n请选择功能 :");
scanf("%d",&number);
if(number<=4)
{
switch(number)
{
case 1:
{
for(i=0;i<9;i++)
if(key[i]=='\r') printf("回车");
else if(key[i]=='\b') printf("退格");
else printf("%c",key[i]);
break;
}
case 2:
{
for(i=0;i<9;i++) key[i]+=5;
temp=key[0];
key[0]=key[8];
key[8]=temp;
for(i=0;i<9;i++) printf("%d",key[i]);
break;
}
case 3:
{
for(i=0;i<9;i++) key[i]-=5;
temp=key[0];
key[0]=key[8];
key[8]=temp;
for(i=0;i<9;i++)
if(key[i]=='\r') printf("回车");
else if(key[i]=='\b') printf("退格");
else printf("%c",key[i]);
break;
}
case 4: exit(0);
}
}
else
{
printf("\n您输入的功能键有误请重新输入");
scanf("%d",&number);
}
}
}
/*VC++ 6.0编译通过。注:从键盘输入的回车是'\r',而不是'\n'*/

⑤ c语言编写的程序,在输入密码时,如何加密

前言:当今社会是一个信息社会,你的个人信息和聊天记录极有可能被别有用心的人时时刻刻监视着,那么你想不想实现专属于两个人或一个小圈子的人在社交软件上的交流不被任何其他人读懂呢?

下面就给大家提供一个原理极其简单程序极其容易实现的C语言文字加密小程序的实现算法

在键盘上录入了"今天晚上我不回家吃饭了",将这串字符的ASCLL码全部加1,打印出来是这样的"掘晚晤市嫌臣假接凑负绿"。怎么样,哈哈哈,是不是看完后丈二和尚摸不着头脑?

所以,用这种算法实现对汉字的加密和翻译绝对隐蔽!汉字在计算机中的编码比较复杂,一个汉字在Windows 10系统下的CodeBlocks编译器里占2个字符的位置,我记得我有做过测试,在Cent OS Linux系统下占3个字符的位置。

然而不管一个汉字占几个字符的位置,对每个字符的ASCLL码做加减乘除的运算和逆运算就可以实现对文字的加密和翻译。

下面向大家展示一下源代码(加密算法为将所有字符的ASCLL码加1,翻译算法为将所有字符的ASCLL码减1):

头文件部分:

主函数部分:

下面向大家展示一下加密与翻译的效果:

思考与提高:仅仅将所有字符的ASCLL码加1就实现对文字信息的加密了,会不会很容易被破译呢?请恕我不是密码学专家,这一点我无法回答,但是直观感觉这样加密确实有点简单。

那么我们就可以对字符进行多种更为复杂的处理,比如给所有字符加上一个正负变换的数列、给所有字符加上斐波那契数列等。总之,直观感觉就是越复杂越不容易被破译。

下面向大家展示一下给所有字符加上一个正负变换的数列的加密算法的源代码:

头文件部分:

主函数部分主要是用来调试的,与上面那个简单加密算法的主函数部分相同。

下面向大家展示一下使用这种复杂加密算法加密与翻译的效果:

用了加密程序后,画风是这样的:

⑥ C语言 简单对字母进行加密

1、在我们的编辑页面输入以下代码。

⑦ 用C语言实现凯撒密码加密解密,急!

忘了说解密了,解密过程完全可以使用上面的代码,只要把key的值改成26-key就行了。比如,加密的密钥是3,那么解密密钥就是23,这样就可以使用同一段代码。至于为什么+23和-3的效果一样,还请翻阅数论有关剩余类环的知识。

⑧ C语言实现密码表加密

#include<stdio.h>
#include<stdlib.h>

#define N 1024
int find(char *pt,char c)
{
int i,r=-1;

for(i=0;'\0'!=pt[i];i++)
{
if(c==pt[i])
{
r=i;
break;
}
}
return r;
}
int main()
{
char mingwen[]="";
char miwen[]="";
char buf1[N],buf2[N];
int i,n;

scanf("%s",buf1);
for(i=0;'\0'!=buf1[i];i++)
{
if(-1!=(n=find(mingwen,buf1[i])))
{
buf2[i]=miwen[n];
}
else
{
buf2[i]=buf1[i];
}
}
buf2[i]='\0';
printf("%s\n",buf2);
system("PAUSE");
return EXIT_SUCCESS;
}

⑨ C语言密码加密,求解释

很高兴能为你解答!这是一个很普通的程序。
char a[5];这串代码的意思是(定义一个字符数组元素为5个)。

for(i=0;i<5;i++)
{
scanf("%c",&a[i]);
}这串代码的意思是(用了一个for循环条件为5次,每次要求用户输入一个字符,共输入五次)。
for(m=0;m<5;m++)
{
a[m]=a[m]+4;
}这串代码也是一个循环体,循环五次,每次都会进行运算表达式,a[m]=a[m]+4;这里的是每次将a[m]+4在赋给a[m]。如果还有什么不明白可以追问。

⑩ 怎么样用c语言对密码进行加密

可以网上网络一些加密算法 然后做成加密函数,也可以自己写...

热点内容
云服务器ecs服务条款 发布:2025-01-20 19:19:36 浏览:46
安卓系统显示屏怎么设置屏保 发布:2025-01-20 19:18:53 浏览:895
有锁机和配置锁哪个好 发布:2025-01-20 19:18:05 浏览:766
安卓版软件如何设置 发布:2025-01-20 18:58:53 浏览:57
java中级项目案例 发布:2025-01-20 18:58:52 浏览:912
sql日志查看工具 发布:2025-01-20 18:57:12 浏览:242
数据库删除表格 发布:2025-01-20 18:51:22 浏览:439
c语言head 发布:2025-01-20 18:41:36 浏览:736
xboxone绝地求生怎么设置服务器 发布:2025-01-20 18:22:12 浏览:176
编译字母表 发布:2025-01-20 18:20:38 浏览:243