A. 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就對了
B. 求C語言程序設計 數據加密詳解~!!!
#include<stdio.h>
#define
N
8
void
main()
{
int
code,count,i,temp;
int
key[N];
printf("請輸入密碼:");
scanf("%d",&code);
//各位交換
i=0;
count=0;
while(code!=0)
{
key[i]=code%10;
code
/=
10;
i++;
count++;
}
//各位
加5,並對其取余
for(i=0;i<count;i++)
{
key[i]
+=
5;
key[i]
%=
10;
}
//數字第一位與最後一位互換
temp
=
key[0];
key[0]
=
key[count-1];
key[count-1]
=
temp;
for(i=0;i<count;i++)
{
printf("%d
",key[i]);
}
}
//暈...你是北大青鳥的吧..我昨天剛做了這個項目.剛好發給你了..
C. 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");
}
D. C語言數字加密
/*
輸入1個四位數,將其加密後輸出。
方法是將該數每一位上的數字加9,然後除以10取余,做為該位上的新數字,最後將第1位和第3位上的數字互換,第2位和第4位上的數字互換,組成加密後的新數。
例:括弧內是說明
輸入
1257
輸出
The encrypted number is 4621(每一位上的數字加9除以10取余後,得0146,交換後得到4601)
*/
#include <stdio.h>
int main( )
{
int number, digit1, digit2, digit3, digit4, newnum;
scanf("%d", &number);
digit1 = number/1000;
digit2 = (number - 1000 * digit1)/100;
digit3 = (number - 1000 * digit1 - 100 * digit2)/10;
digit4 = number - 1000 * digit1 - 100 * digit2 - 10 * digit3;
digit1 += 9;
digit1 %= 10;
digit2 += 9;
digit2 %= 10;
digit3 += 9;
digit3 %= 10;
digit4 += 9;
digit4 %= 10;
//第三位數是1的情況不做考慮
newnum = digit3 * 1000 + digit4 * 100 + digit1 * 10 +digit2;
printf("The encrypted number is %d\n", newnum);
return 0;
}
E. C語言編程 將四位數字分為一組進行加密,其中第一位和第三數字交換,第二位和第四位數字交換
1 3 交換 2 4交換就是 12和34交換 前兩位換到後兩位
#include "stdio.h"
void main()
{
int a;
int b;
scanf("%d",&a);
b=a/100+a%100*100;
printf("%d",b);
}
F. 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;
}