導航:首頁 > 文檔加密 > 加密c語言數字

加密c語言數字

發布時間:2023-02-18 11:12:33

㈠ 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;
}

㈡ C語言字元串按要求加密 求教

1 子函數的修改。只要減掉24 即可,其餘語句多餘。
void encryp(char *plain,char *cipher)
{
int temp;
while(*plain!='\0')
{
temp=*plain-24;
*cipher=temp;
plain++;
cipher++;
}
*cipher='\0';
}
2 對輸出句的修改。改為按數字格式(知識點)輸出即可。
{ int i=0; // 增加一變數 i =0;
。。。。。。。。
while(ch2[i]!='\0')
printf("%d",ch2[i++]);
return 0;
}

㈢ C語言 加密數字為字母

#include<stdio.h>

intmain()
{
inta;
scanf("%d",&a);
do
{
putchar('a'+a%10);
a/=10;
}while(a);
return0;
}

㈣ 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<stdio.h>

intmain()
{
inta,b;
scanf("%d",&a);
b=0;
do
{
b=b*10+(a%10+2)%10;
a/=10;
}while(a);
for(a=0;b;b/=10)
{
a=a*10+b%10;
}
printf("%d ",a);
return0;
}

㈥ c語言加密演算法

看你催就倉促寫了個,自我感覺寫的不是很好,但是能用了。數據只能是大寫字母組成的字元串。
加密的時候,輸入Y,然後輸入要加密的文本(大寫字母)
解密的時候,輸入N,然後輸入一個整數n表示密文的個數,然後n個整數表示加密時候得到的密文。
/*RSA algorithm */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MM 7081
#define KK 1789
#define PHIM 6912
#define PP 85
typedef char strtype[10000];
int len;
long nume[10000];
int change[126];
char antichange[37];

void initialize()
{ int i;
char c;
for (i = 11, c = 'A'; c <= 'Z'; c ++, i ++)
{ change[c] = i;
antichange[i] = c;
}
}
void changetonum(strtype str)
{ int l = strlen(str), i;
len = 0;
memset(nume, 0, sizeof(nume));
for (i = 0; i < l; i ++)
{ nume[len] = nume[len] * 100 + change[str[i]];
if (i % 2 == 1) len ++;
}
if (i % 2 != 0) len ++;
}
long binamod(long numb, long k)
{ if (k == 0) return 1;
long curr = binamod (numb, k / 2);
if (k % 2 == 0)
return curr * curr % MM;
else return (curr * curr) % MM * numb % MM;
}
long encode(long numb)
{ return binamod(numb, KK);
}
long decode(long numb)
{ return binamod(numb, PP);
}
main()
{ strtype str;
int i, a1, a2;
long curr;
initialize();
puts("Input 'Y' if encoding, otherwise input 'N':");
gets(str);
if (str[0] == 'Y')
{ gets(str);
changetonum(str);
printf("encoded: ");
for (i = 0; i < len; i ++)
{ if (i) putchar('-');
printf(" %ld ", encode(nume[i]));
}
putchar('\n');
}
else
{ scanf("%d", &len);
for (i = 0; i < len; i ++)
{ scanf("%ld", &curr);
curr = decode(curr);
a1 = curr / 100;
a2 = curr % 100;
printf("decoded: ");
if (a1 != 0) putchar(antichange[a1]);
if (a2 != 0) putchar(antichange[a2]);
}
putchar('\n');
}
putchar('\n');
system("PAUSE");
return 0;
}
測試:
輸入:
Y
FERMAT
輸出:
encoded: 5192 - 2604 - 4222
輸入
N
3 5192 2604 4222
輸出
decoded: FERMAT

㈦ C語言指針實現小於8位數字加密

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
main()
{
char *input_number = NULL,*temp = NULL,*p = NULL;;
char c;
int i = 0,num = 0;
input_number = (char *)malloc(10);
memset(input_number,0,10);
temp = (char *)malloc(10);
memset(temp,0,10);
printf("請輸入8位數字:\n");
/*輸入要加密的數據*/
while(i < 8)/*只取8個字元的數據*/
{
c = getchar();
if(c <= '9' && c >= '0')/*只從中取整數*/
{
input_number[i] = c;
i++;
}
}
input_number[i] = '\0';
p = &input_number[7];
/*將輸入的數據倒序存儲*/
i = 0;
while(i < 8)
{
temp[i] = *p;
p --;
i ++;
}
temp[i] = '\0';
/*加密運算*/
i = 0;
for(i = 0; i < 8; i ++)
{
num = temp[i] - 48;/*字元轉換為整形*/
num = num + 5;
num = num % 10;
temp[i] = num + 48;/*整形轉換為字元*/
}
/*第一位和最後一位數據交換*/
p = temp;
temp[8] = *p;
temp[0] = num + 48;
/*得到結果*/
sprintf(input_number,"%s",temp);
printf("input_number = %s\n",input_number);
/*釋放*/
if(NULL != temp)
{
free(temp);
temp = NULL;
}
if(NULL != input_number)
{
free(input_number);
input_number = NULL;
}
return 0;
}

㈧ c語言編寫程序,並加密數據

#include<stdio.h>
void passwordnum(long a);
int main(void)
{
long num;
while(!scanf("%d",&num))
{
while(getchar()!='\n'); //把數字後面的不純凈輸入吸收掉
printf("Input Error! please retry anain.\n");
}
passwordnum(num);
printf("\n");
return 0;
}
void passwordnum(long a)
{
if(a>0)
{
passwordnum(a/10);
printf("%d",(a+2)%10);
}
else if(a<0)
{
printf("-");
a=-a;
passwordnum(a);
}
}

㈨ 用C語言編程實現如下功能按照如下方法加密數據。

#include <stdio.h>

int power(int x,int y)
{
int w;
w=1;
do {
if (y==0) break;
if (y%2)
{
w*=x;
y--;
}
else
{
x*=x;
y/=2;
}
}while (y);
return (w);
}

int main()
{
int i,o,w,n,j;
printf("Please input a integer:");
scanf("%d",&i);
w=0;
o=0;
do{
n=i;
i=i/10;
n=(n十2);
n=n*power(10,w);
o十=n;
w十十;
}while(i);
printf("The code is:%d\n",o);
getchar();getchar();
retern (0);
}

㈩ C語言中的數據加密(跪求)

下面是個例子,對12345678加密。
想對哪個8位數加密,調ProcessInt這個函數就可以了。
如果8位內的任意整數的話,樓主做做改動即可,不難實現。
程序考慮到讓樓主看的清楚,並沒有將效率寫到最大。

#include <stdio.h>
#include <iostream>
#include <windows.h>
#include <math.h>

using namespace std;

void ProcessInt(int* piInt)
{
int iArray[8];
int iResult = (*piInt);
int iTmp = *piInt;

for (int i = 0; i < 8; i++)
{
iResult = iResult / (int)pow(10, 8 - 1 - i);
iArray[i] = iResult;
iResult = iTmp - iResult * (int)pow(10, 8 - 1 - i);
iTmp = iResult;
}

//1.sequence

//2.replace the number by plus 5 and then div 10
for (int i = 0; i < 8; i++)
{
iArray[i] = (iArray[i] + 5) % 10;
}

//3.first->last, last->first

//4.construct the number
iResult = iArray[0] * (int)pow(10, 7);
iResult = iResult + iArray[6] * (int)pow(10, 6);
iResult = iResult + iArray[5] * (int)pow(10, 5);
iResult = iResult + iArray[4] * (int)pow(10, 4);
iResult = iResult + iArray[3] * (int)pow(10, 3);
iResult = iResult + iArray[2] * (int)pow(10, 2);
iResult = iResult + iArray[1] * (int)pow(10, 1);
iResult = iResult + iArray[7];

*piInt = iResult;
}

void main()
{
int i = 12345678;

ProcessInt(&i);
printf("加密後的數據是:%d\n", i);
}

閱讀全文

與加密c語言數字相關的資料

熱點內容
android公網ip 瀏覽:609
要塞1地圖放哪個文件夾 瀏覽:848
凡科建站怎麼弄伺服器 瀏覽:939
蘋果手機怎麼設置app播放 瀏覽:202
下載網站源碼用什麼瀏覽器 瀏覽:241
六線譜pdf 瀏覽:156
linuxmysqlsock 瀏覽:239
人教版數學pdf下載 瀏覽:460
文檔安全加密系統 瀏覽:491
數控銑床編程簡單數字 瀏覽:788
編程電纜如何重啟 瀏覽:121
myqq命令行發消息 瀏覽:365
日產逍客怎麼使用app升窗 瀏覽:503
安卓系統怎麼快速刪除微信內容 瀏覽:653
csharppython 瀏覽:409
程序員脖子按摩儀 瀏覽:562
小米桌面文件夾亂碼怎麼回事 瀏覽:858
點歌台app怎麼連接 瀏覽:318
大學電腦編程學什麼好 瀏覽:348
上哪裡取消應用加密 瀏覽:172