導航:首頁 > 文檔加密 > 四位數一次加密

四位數一次加密

發布時間:2022-08-07 11:32:13

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

㈡ 編寫一個簡單的加密程序:輸入四位整數,按照以下加密演算法處理後,生成加密後的四位整數輸出。 加密演算法:

//原理: a異或b異或b 等於 a

//b就是密碼

# include <windows.h>
int __stdcall wWinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPWSTR lpCmdLine, __in int nShowCmd )
{
int numInput[4] = {1, 2, 3, 4}; //輸入數據
int key[4] = {6, 2, 9, 8}; //密碼
int enp[4], disenp[4]; //加密與解密後的數據
for(int i = 0; i < 4; ++i)
{
enp[i] = numInput[i] ^ key[i];
disenp[i] = enp[i] ^ key[i];
}
wchar_t strDsp[56];
wsprintf(strDsp, L"原數據%d:%d:%d:%d", numInput[0], numInput[1], numInput[2], numInput[3]);
::MessageBox(::GetForegroundWindow(), strDsp, strDsp, 0);
wsprintf(strDsp, L"加密後%d:%d:%d:%d", enp[0], enp[1], enp[2], enp[3]);
::MessageBox(::GetForegroundWindow(), strDsp, strDsp, 0);
wsprintf(strDsp, L"解密後%d:%d:%d:%d", disenp[0], disenp[1], disenp[2], disenp[3]);
::MessageBox(::GetForegroundWindow(), strDsp, strDsp, 0);
return 0;
}

㈢ 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);
}

㈣ 要求從鍵盤輸入一個4位整數,按如下規則加密後輸出。加密規則:每位數字都加上7,然後用和除以10的余數取

需要兩個子程序
function zhu()
x=input('請輸入一個四位數(1000-9999):');
if x>9999
'不是四位數,程序結束'
elseif x<1000
'不是四位數,程序結束'
else f1=x
y=f(f1);
end
function y=f(f1)
a=fix(f1/1000);
b=fix((f1-a*1000)/100);
c=fix((f1-a*1000-b*100)/10);
d=mod(f1,10);
c=mod(a+7,10);
d=mod(b+7,10);
a=mod(c+7,10);
b=mod(d+7,10);
y=1000*a+100*b+10*c+d

㈤ 輸入一個四位數,將其加密後輸出。方法是將該數每一位的數字加9,然後除以10取余作為該位上的新數字,

/*

1234

2103

Press any key to continue

*/

#include<iostream.h>

intmain(){
intdigit1,digit2,digit3,digit4,newnum,number;
cin>>number;
digit1=(number%10+9)%10;number/=10;
digit4=(number%10+9)%10;number/=10;
digit3=(number%10+9)%10;number/=10;
digit2=(number+9)%10;
newnum=digit4*1000+digit3*100+digit2*10+digit1;
cout<<newnum<<endl;
return0;
}

㈥ 4位密碼最常用前20名

用戶密碼保存到資料庫時,常見的加密方式有哪些?以下幾種方式是常見的密碼保存方式:

1、明文保存

比如用戶設置的密碼是「123456」,直接將「123456」保存在資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

2、對稱加密演算法來保存

比如3DES、AES等演算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經泄露了,密鑰很可能也會泄露,當然可以將一般數據和密鑰分開存儲、分開管理,但要完全保護好密鑰也是一件非常復雜的事情,所以這種方式並不是很好的方式。

3、MD5、sha1等單向HASH演算法

使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。

其實之前公司也是採用的這種MD5加密方式。

4、PBKDF2演算法

該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。

在使用PBKDF2演算法時,HASH一般會選用sha1或者sha256,隨機鹽的長度一般不能少於8位元組,HASH次數至少也要1000次,這樣安全性才足夠高。一次密碼驗證過程進行1000次HASH運算,對伺服器來說可能只需要1ms,但對於破解者來說計算成本增加了1000倍,而至少8位元組隨機鹽,更是把建表難度提升了N個數量級,使得大批量的破解密碼幾乎不可行,該演算法也是美國國家標准與技術研究院推薦使用的演算法。

5、bcrypt、scrypt等演算法

這兩種演算法也可以有效抵禦彩虹表,使用這兩種演算法時也需要指定相應的參數,使破解難度增加。

在密碼學中,scrypt(念作「ess crypt」)是Colin Percival於2009年所發明的金鑰推衍函數,當初設計用在他所創立的Tarsnap服務上。設計時考慮到大規模的客制硬體攻擊而刻意設計需要大量內存運算。

Scrypt不僅計算所需時間長,而且佔用的內存也多,使得並行計算多個摘要異常困難,因此利 用rainbow table進行暴力攻擊更加困難。

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

㈧ 輸入一個四位正整數,將其加密後輸出。方法是將該數每一位上的數字加9,然後除以10 取余,

最後是printf("The encrypted number is %d\n",n);
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");
}

閱讀全文

與四位數一次加密相關的資料

熱點內容
萬象伺服器斷電後啟動不了怎麼辦 瀏覽:356
我的世界蘋果版的2b2t伺服器地址咋查 瀏覽:95
xlsx轉換pdf 瀏覽:98
3dmax擠出命令英語 瀏覽:903
靶心率的定義和演算法 瀏覽:514
3d模術師app哪裡下載 瀏覽:474
php中文api文檔 瀏覽:458
安卓設計怎麼加入輸入框 瀏覽:185
主根伺服器什麼時候開始 瀏覽:738
奇門遁甲完整版pdf 瀏覽:901
app軟體怎麼用的 瀏覽:802
電子書pdf購買 瀏覽:193
浪潮伺服器如何做系統 瀏覽:111
冒險島img格式加密 瀏覽:596
我的世界手游如何復制命令 瀏覽:659
天刀自動彈琴腳本源碼 瀏覽:970
打開其它app微信怎麼收不到 瀏覽:447
安卓游戲耳機怎麼戴 瀏覽:18
不越獄怎麼去除app廣告 瀏覽:178
ipadminipdf閱讀 瀏覽:507