① 8個字元數字密碼怎麼設
「8個字元數字密碼」指從10個(0~9)阿拉伯數字中任意選擇8個數字填上,數字可以重復,怎麼選擇都行。但作為密碼,所選擇的數字就要避免被他人猜到,例如:
順序數字(12345678)、重復數字(11223344)、同一數字(33333333)、生日(年月日數字)等等,否則就容易被他人試測出來,起不到保密的作用。
② 乘法密碼的加密過程
設明文消息元素個數為n,密鑰為k。
密鑰k在選取的時候應滿足兩個條件:
(1)0<k<n
(2)k與n互素
設明文消息為M,消息元素為m;
則密文消息為C,密文元素為c=m*k mod n;
其解密過程如下:
首先要得到解密密鑰,就是要求得加密密鑰k模n的逆元;
具體求法為k *mod n=1;
然後計算m=c *mod n即可得到明文消息M。
舉例說明如下:
英文字母有26個,即n=26;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
M=m[26]={a , b , c ,d , e , f , g , h , i , j , k , l , m , n , o , p , q , r , s , t , u , v , w , x , y , z };
我們選取密鑰k=5;
現在我們對hello進行加密
hello所對應的數組為[8,5,12,12 15];
由於8*5 (mod 26) =40(mod)26=14;
依次類推,可得到加密後的數組為[ 14 , 25,8,8, 23 ];
對應的密文消息就是nyhhw
現在我們開始對nyhhw解密
首先要求得解密密鑰;
由於5*21(mod 26)=105(mod26)=1;
所以=21;
nyhhw所對應的數組為[ 14 , 25,8,8, 23 ];
由於14*21(mod26)=294(mod26)=8;
依次類推,可得到解密後的數組為[8,5,12,12 15];
對應的明文消息就是hello。
③ 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語言指針實現小於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;
}
⑤ 請高手破解此密碼~~經過8位加密 純數字密碼
12345678
⑥ 找規律( )乘以8加( )等於98,( )乘以8加( )等於987,急用,括弧里填什麼都行
( 12)乘以8加( 2)等於98,( 123)乘以8加( 3)等於987
12*8+2=96+2=98
123*8+3=984+3=987【規律:第一空12 123 1234 第2空填 個位數字】
下一個 1234*8+4=9872+4=9876
12345*8+5=9876+5=98765.
⑦ 如何數字簡單加密
比如多少乘多少除多少,這個就簡單啊,不就是反過來就可以了么。怎麼還不會哦。
⑧ 數字加密解密
var a:array[0..9]of byte=(0,1,2,3,4,5,6,7,8,9); {定義原始數字}
b:array[0..9]of byte=(7,5,9,1,3,6,8,0,2,4);{定義密文數字}
c:array[1..100]of byte;{待處理數字}
n,m,i,j:longint;
begin
read(n,m);
for i:=1 to m do
read(c[i]);{讀入待處理數字}
if n=1 then{加密}
for i:=1 to m do
write(b[c[i]]);{原始數字是0,1,2,3,4,5,6,7,8,9所以不需尋找}
if n=2 then{解密}
for i:=1 to m do
for j:=0 to 9 do{尋找原始數字}
if c[i]=b[j] then
write(a[j],' ');
end.
純手打!
Free pascal 測試通過!
Running "d:\▒α│╠ ╣¿╩╦╞µ\fpc\bin\i386-win32\ys.exe 123"
1 6
1 9 9 7 7 1
Running "d:\▒α│╠ ╣¿╩╦╞µ\fpc\bin\i386-win32\ys.exe 123"
2 6
1 9 9 7 7 1
3 2 2 0 0 3
望樓主採納! 謝謝!
⑨ 數學高手進來 有一個數字加密的問題
你把密碼每一位都加上一個數再換成字母
比如密碼12345
你都加上9
就變成10 11 12 13 14
就是jklmn
你就可以打上
iiiiiiii jklmn
⑩ 若按照「乘3加1取個位」的方式逐位加密,明碼「16」加密之後的密碼為「49」;那7145的明碼是
這個有個笨方法,就是算出0~9加密後的數字。比如1加密就是1×3+1=4,8加密就是8×3+1=25,取5
0-1,1-4,2-7,3-0,4-3,5-6,6-9,7-2,8-5,9-8
由上,即知7145對應的是2018