导航:首页 > 文档加密 > 四位数一次加密

四位数一次加密

发布时间: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");
}

阅读全文

与四位数一次加密相关的资料

热点内容
主根服务器什么时候开始 浏览:736
奇门遁甲完整版pdf 浏览:898
app软件怎么用的 浏览:802
电子书pdf购买 浏览:193
浪潮服务器如何做系统 浏览:111
冒险岛img格式加密 浏览:596
我的世界手游如何复制命令 浏览:659
天刀自动弹琴脚本源码 浏览:969
打开其它app微信怎么收不到 浏览:447
安卓游戏耳机怎么戴 浏览:18
不越狱怎么去除app广告 浏览:178
ipadminipdf阅读 浏览:506
文件夹无限制压缩会不会降低内存 浏览:412
荣耀怎样创建文件夹 浏览:631
如何用本机登陆远程服务器地址 浏览:682
黄小鸭解压文具盒 浏览:672
女程序员的转行方法 浏览:884
东风启辰车联网安装文件夹 浏览:526
华为怎么设置app时间锁 浏览:663
后宫app视频怎么下载 浏览:528