导航:首页 > 文档加密 > 乘以8加数字加密

乘以8加数字加密

发布时间:2022-06-16 06:31:37

① 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语言 数据加密

  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语言指针实现小于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

阅读全文

与乘以8加数字加密相关的资料

热点内容
如何登录服务器看源码 浏览:522
如何做服务器端 浏览:154
注册服务器地址指什么 浏览:433
文本命令行 浏览:97
扑克牌睡眠解压 浏览:193
rc4算法流程图 浏览:159
胡萝卜解压方法 浏览:35
扫描pdf格式软件 浏览:876
程序员在银行开账户 浏览:516
android数据库下载 浏览:749
中午服务器崩溃怎么办 浏览:425
产品经理和程序员待遇 浏览:442
解忧程序员免费阅读 浏览:109
录像免压缩 浏览:508
总结所学过的简便算法 浏览:362
南昌哪些地方需要程序员 浏览:761
三台服务器配置IP地址 浏览:175
如何用命令方块连续对话 浏览:280
win7linux共享文件夹 浏览:305
命令符打开本地服务 浏览:601