當前位置:首頁 » 編程語言 » c語言如何將一個三位數加密
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言如何將一個三位數加密

發布時間: 2022-08-10 06:27:46

『壹』 c語言 數據加密

  1. 什麼是異或演算法

  2. 異或的特點是原始值經過兩次異或某一個數後會變成原來的值,所以有時利用這個特性來進行加密,加密端把數據與一個密鑰進行異或操作,生成密文。接收方收到密文後利用加密方提供的密鑰進行再次異或操作就能得到明文。

常式:

/*以DWORD為單位對文件進行加密,將每個DWORD與0xfcba0000(密鑰)做異或,寫入另一個文件*/

#include<stdio.h>
#include<stdlib.h>
#defineDWORDunsignedlong
#defineBYTEunsignedchar
#definefalse0
#definetrue1
intmain(intargc,char*argv[])
{
FILE*hSource;
FILE*hDestination;

DWORDdwKey=0xfcba0000;
char*pbBuffer;
DWORDdwBufferLen=sizeof(DWORD);
DWORDdwCount;
DWORDdwData;
if(argv[1]==0||argv[2]==0)
{
printf("missingargument! ");
returnfalse;
}
char*szSource=argv[1];
char*szDestination=argv[2];

hSource=fopen(szSource,"rb");//打開源文件.
hDestination=fopen(szDestination,"wb");//打開目標文件
if(hSource==NULL){printf("openSourceFileerror!");returnfalse;}
if(hDestination==NULL){printf("openDestinationFileerror!");returnfalse;}

//分配緩沖區
pbBuffer=(char*)malloc(dwBufferLen);

do{
//從源文件中讀出dwBlockLen個位元組
dwCount=fread(pbBuffer,1,dwBufferLen,hSource);
//加密數據
dwData=*(DWORD*)pbBuffer;//char*TOdword
dwData^=dwKey;//xoroperation
pbBuffer=(char*)&dwData;
//將加密過的數據寫入目標文件
fwrite(pbBuffer,1,dwCount,hDestination);
}while(!feof(hSource));

//關閉文件、釋放內存
fclose(hSource);
fclose(hDestination);

printf("%sisencryptedto%s ",szSource,szDestination);
return0;
}

『貳』 C語言數字加密

#include
void
main()
{
int
a[5];
/*
存儲各位上的數字
*/
int
num,
temp,
encripy;
/*
num是要輸入的數,temp是交換時用來存儲臨時值,encripy是加密後的數據
*/
int
i;
do
{
printf("please
input
the
number:");
scanf("%d",&num);
if(!(num/10000
!=0
&&
num/100000==0))
printf("data
error!\n");
}while(!(num/10000
!=0
&&
num/100000==0));
a[0]
=
num/10000%10;
/*
求各位上的數字
*/
a[1]
=
num/1000%10;
a[2]
=
num/100%10;
/*
百位上的數字
*/
a[3]
=
num/10%10;
/*
十位上的數字
*/
a[4]
=
num%10;
/*
個位上的數字
*/
for(i
=
0;
i
<
5;
++i)
/*
開始加密
*/
a[i]
=
(a[i]
+
8)%10;
temp
=
a[0];
/*
交換位置開始
*/
a[0]
=
a[3];
a[3]
=
temp;
temp
=
a[1];
a[1]
=
a[2];
a[2]
=
temp;
/*
交換位置結束同時加密結束
*/
encripy
=
a[0]*10000
+
a[1]*1000
+
a[2]*100
+
a[3]*10
+
a[4];
/*
加密後的數據
*/
printf("\nthe
scourse
number:
%d\n",
num);
/*
輸出原數據
*/
printf("\nencripy
the
number:
%d\n\n",
encripy);
/*
輸出加密後的數據
*/
}
在vc6.0成功運行,希望對你有幫助!

『叄』 跪求c語言加密解密思路,,!!

你的92是怎麼得到523的?


/*解密的過程就是加密的逆過程,你加密的過程是:
1. 每位數都加7並對10進行取余
2. 第一位和第三位進行調換
那麼解密的過程就可以是這樣:
1. 第一位和第三位進行調換(現在就重新回到了原來的位置)
2. 每位數都減7並對10進行取余
可是,這里有一個問題:如果這位上的數小於7怎麼辦。解決方案是先加10再減7,最後的結果就是加3然後對10取余
*/
#include <stdio.h>
int jiemi(int m)
{
int i, j, a, s;
s = 0;
while(m)
{
a = m%10; //取出最後一位
s = s*10 + (a+3)%10;
m /= 10;
}
return s;
}
int main()
{
int n;
while(scanf("%d", &n)==1)
{
printf("%d 解密後: %d ", n, jiemi(n));
}
return 0;
}

『肆』 C++程序設計題:輸入一個三位數,將其加密後輸出。加密方法是對該數的每一位數字,將其加6後除以10

#include<iostream>
usingnamespacestd;

//加密數字nNumber,輸出加密後的數字
intEncryption(intnNumber)
{
intnResult=0;
do
{
intnCurrent=nNumber%10;
nNumber=nNumber/10;
nCurrent=(nCurrent+6)%10;
nResult=(10*nResult+nCurrent);
}while(nNumber>0);

returnnResult;
}

int_tmain(intargc,_TCHAR*argv[])
{
intnNumber=0;
cout<<"請輸入一個三位數:"<<endl;
cin>>nNumber;
if(!(99<nNumber&&1000>nNumber))
{
cout<<"輸入數字非法!"<<endl;
return0;
}

cout<<"加密後的數字為:"<<Encryption(nNumber)<<endl;
system("pause");
return0;
}

『伍』 C++程序設計題:輸入一個三位數,將其加密後輸出。加密方法是對該數的每一位數字,將其加6後除以10取...

直接把該三位數對十取余,將每個余賦值給一個字母。也就是分解咯該三位數。然後對每個字母進行加6後對十取模,再重新賦值給該字母。最後就把它門按你說的換位組合起來就咯,

『陸』 c語言 暴力破解密碼箱密碼,自己設定一個三位數的密碼,然後通過使用三層For循環,把密碼輸出來

#include <stdio.h>
void main()
{
int password,i,j,k;
int t;

printf("請設置任意3位數密碼:\n");
scanf("%d",&password);

for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
for(k=0;k<9;k++)
{
t=i*100+j*10+k;
if(t==password)
{
printf("暴力破解得到密碼為%d\n",t);
}
}
}
}
}

『柒』 C++程序設計題:輸入一個三位數,將其加密後輸出。對該數的每一位數字,將其加6後除以10取

手機打字太難了
#include<iostream>
using namespace std;
int main()
{
int n=0;
printf("請輸入一個三位數:");
while(n<100||n>999)
{
scanf("%d",&n);
}
printf("加密後:\n");
printf("%.1f %.1f %.1f",(n/100+6)/10.0,(n%100/10+6)/10.0,(n%10+6)/10.0);
return 0;
}

『捌』 如何用C語言編程一數字加密程序

樓上的不錯,但如果你不會的話,可以用if語句;
輸入原密碼,用數組存儲,再次輸入時,從頭按位比較,如果每一位數字都相同就可以通過
希望答案對你有幫助,如不滿意可繼續提問,若滿意就提高一下懸賞金吧

『玖』 C語言 三位數小密碼程序

你可以參考相應的加密演算法,根據這個演算法來寫程序。

『拾』 用C語言編寫一個字元串加密程序要求在補充說明中

#include<stdio.h>
intmain()
{
intkey;
charstr[100];
intM;
inti;

while(1)
{
scanf("%d",&key);
M=key/100+key/10%10+key%10;
M%=27;
if(M)break;
printf("重新輸入密鑰 ");
}
gets(str);
for(i=0;str[i];i++)
{
charc;
if('A'<=str[i]&&str[i]<='Z')
c='A';
elseif('a'<=str[i]&&str[i]<='z')
c='a';
elsecontinue;
str[i]=(str[i]-c+M)%26+c;
}
puts(str);
return0;
}