c語言給四位數加密
❶ 輸入一個四位數,加密後輸出,加密方法是將該數每一位數字加13得到一個數,然後轉換成相應的大寫字母,如1-A
你可以參考下下面的代碼:
#include <iostream>
using namespace std;
int main()
{
string key="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int num;
cout<<key[num/1000+12];
num%=1000;
cout<<key[num/100+12];
num%=100;
cout<<key[num/10+12];
num%=10;
cout<<key[num+12]<<endl;
return 0;
}
有什麼不明白的地方可以再問我,望採納。
❷ C++輸入一個4位數,將其加密為另一個4位數。加密原則為:每個位 * 7 % 10
//求c語言編程大神出手相救:輸入一個三位數,將其加密後輸出。
//加密方法使對該數的每一位數字,將其加6除以10取余數,
//作為該位上的新數字,再交換個位數字和百位數字,如輸入256加密後的數為218。
#include<stdio.h>
main()
{
int
number=0;
int
i=0;
int
t=0;
int
spilt[3];
printf("輸入一個三位數");
scanf("%d",&number);
for(i=0;i<3;i++)
{
spilt[i]=(number%10+6)%10;
number=number/10;
}//把拆分後的數字存入spilt數組
for(i=0;i<3;i++)
{
printf("%d",spilt[i]);
}
printf("\n");
}
❸ 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語言求大神幫忙看一下哪裡錯了,輸入1個四位數,將其加密後輸出.方法是將該數每一位上的數字加9,然後
#include <stdio.h>
int main()
{
int n,a,b,c,d,e,f,g,h,x,y;
scanf("%d",&n);
a=n%10;
b=n/10%10;
c=n/100%10;
d=n/1000%10;
e=(a+9)%10;
f=(b+9)%10;
g=(c+9)%10;
h=(d+9)%10;
x=e;e=g;g=x;
y=f;f=h;h=y;
printf("%d%d%d%d",h,g,f,e);
return 0;
}
求打賞~~~
❺ 輸入一個四位數,將其加密後輸出。方法是將該數每一位的數字加9,然後除以10取余作為該位上的新數字,
你的錯誤在於:用轉換後的數去與原來的數據進行運算
比如:輸入1234
digit2取得了1,換算成了0
軟化你在算digit1時number-digit2*1000=1234-0,原先取得的千位上的數字1沒有保留所以計算不對了
建議:取數和加9模10分別做,先逐一取得各位上的數字,然後再做加9模10的運算。
❻ C語言編程:要求輸入student,將其加密,每個字母往後移四位,比如e,將其變成i,求高手解答!謝謝!
是的,就是設置個char數組,比如char student[4]={0};char strtemp[4];
然後將起賦值為你想要的值,這就是加密前,加密的話就:
for(int i=0;i<sizeof(student);i++)
strtemp[i] = student[i]+4;
得到的就是你要的加密後的組合了,解密同樣,直接每個指減4就對了
❼ c語言 數據加密
什麼是異或演算法
異或的特點是原始值經過兩次異或某一個數後會變成原來的值,所以有時利用這個特性來進行加密,加密端把數據與一個密鑰進行異或操作,生成密文。接收方收到密文後利用加密方提供的密鑰進行再次異或操作就能得到明文。
常式:
/*以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<stdio.h>
void code(char *p)
{
for(int i=0;i<4;i++)
{
p[i]=(p[i]-41)%10+48;
}
}
void uncode(char *p)
{
for(int i=0;i<4;i++)
{
p[i]=(p[i]-45)%10+48;
}
}
main()
{
char num[4];
printf("請輸入一個4位數:\n");
scanf("%s",num);
code(num);
printf("密文為%s\n",num);
uncode(num);
printf("原數為%s\n",num);
}
❾ C語言,數據加密
#include<stdio.h>
int encrypt(int c);
void main()
{
int pwd[5]={1,2,3,4,5};
int newpwd[5];
int i;
for(i=0;i<5;i++)
{
newpwd[i]=encrypt(pwd[i]);//每位數字都加6,然後用和除以8的余數代替該數字
}
i=newpwd[0];newpwd[0]=newpwd[4];newpwd[4]=i;//交換第一位和第五位
i=newpwd[1];newpwd[1]=newpwd[3];newpwd[3]=i;//交換第二位和第四位
//輸出檢查
printf("old password:");
for(i=0;i<5;i++)
{
printf("%d",pwd[i]);
}
printf("\n new password:");
for(i=0;i<5;i++)
{
printf("%d",newpwd[i]);
}
printf("\n");
}
int encrypt(int c)
{
return (c+6)%8;
}
❿ C語言字元串加密 後移四位 並最後輸入Y持續上一個過程 輸入N結束
#include<stdio.h>
#include<stdlib.h>
#include"string.h"
intmain(intargc,char*argv[])
{
chars[50]={"