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語言對密碼進行加密
可以網上網路一些加密演算法 然後做成加密函數,也可以自己寫...