密文解密在线转换(解密转换器)

2023-02-12 11:04:44 密码用途 思思

RSA怎么把解密后的密文转化为字符串

摘来的一段代码,思路可做参考。

/* RSA */

#includestdio.h

int candp(int a, int b, int c) //数据处理函数,实现幂的取余运算

{

   int r = 1;

    b= b + 1;

   while(b != 1) {

       r = r * a;

       r = r % c;

       b--;

    }

   printf("%d\n", r);

   return r;

}

int fun(int x, int y) //公钥e与t的互素判断

{

   int t;

   while(y) {

       t = x;

       x = y;

       y = t % y;

    }

   if(x == 1)

       return 0; //x与y互素时返回0

   else

       return 1;//x与y不互素时返回1

}

 

int main()

{

   int p, q, e, d, m, n, t, c, r;

   printf("请输入两个素数p,q:");

   scanf("%d%d", p, q);

    n= p * q;

   printf("计算得n为%3d\n", n);

    t= (p - 1) * (q - 1); //求n的欧拉数

   printf("计算得t为%3d\n", t);

   printf("请输入公钥e:");

   scanf("%d", e);

   if(e  1 || e  t || fun(e, t)) {

       printf("e不合要求,请重新输入:");//e1或et或e与t不互素时,重新输入

       scanf("%d", e);

    }

    d= 1;

   while(((e * d) % t) != 1)

       d++; //由公钥e求出私钥d

   printf("经计算d为%d\n", d);

   printf("加密请输入1\n");//加密或解密选择

   printf("解密请输入2\n");

   scanf("%d", r);

   switch(r) {

   case 1:

       printf("请输入明文m:");//输入要加密的明文数字

       scanf("%d", m);

       c = candp(m, e, n);

       printf("密文为%d\n", c);

       break;

   case 2:

       printf("请输入密文c:");//输入要解密的密文数字

       scanf("%d", c);

       m = candp(c, d, n);

       printf("明文为%d\n", m);

       break;

   default:

       ;

    }

 

   return 0;

}

在线MD5解密

d5密文破解(解密)可以说是网络攻击中的一个必不可少的环节,是黑客工具中的一个重要“辅助工具”。md5解密主要用于网络攻击,在对网站等进行入侵过程,有可能获得管理员或者其他用户的账号和密码值(md5加密后的值)。获得的密码值有两种情况,一种是明文,另外一种就是对明文进行了加密。如果密码值是加密的,这个时候就需要对密码值进行判断,如果是采取md5加密,则可以通过MD5Crack3等软件进行破解。王小云教授的md5密码碰撞破解算法没有公布,因此目前Md5解密方式主要采取暴力破解,

即软件通过算法生成字典,然后使用md5函数加密该字典中的值形成密文,接着跟需要破解的密文进行比较,如果相同则认为破解成功。目前网上有很多网站提供md5加密或者加密值查询,将加密后的md5值,输入到网站中,如果网站数据库中存在该md5,则该值对应的md5加密前的值就为密码。本案例介绍如何使用MD5Crack3以及一些在线的网站来进行破解;MD5Crack3是阿呆写的一款md5密码破解软件,其网站地址:,目前已经发布了MD5Crack4.0版本,也可以到我的blog()去下载。

(一)在线生成md5密码值

1.有关md5加解密知识

Md5密文破解(解密)可以说是网络攻击中的一个必不可少的环节,是黑客工具中的一个重要“辅助工具”。md5解密主要用于网络攻击,在对网站等进行入侵过程,有可能获得管理员或者其他用户的账号和密码值(md5加密后的值)。获得的密码值有两种情况,一种是明文,另外一种就是对明文进行了加密。如果密码值是加密的,这个时候就需要对密码值进行判断,如果是采取md5加密,则可以通过MD5Crack4等软件进行破解。王小云教授的md5密码碰撞破解算法没有公布,因此目前Md5解密方式主要采取暴力破解,

即软件通过算法生成字典,然后使用md5函数加密该字典中的值形成密文,接着跟需要破解的密文进行比较,如果相同则认为破解成功。目前网上有很多网站提供md5加密或者加密值查询,将加密后的md5值,输入到网站中,如果网站数据库中存在该md5,则该值对应的md5加密前的值就为密码。

2.通过cmd5网站生成md5密码

在浏览器中输入地址“”,在输入框中输入想要加密的原始密码,然后单击“md5加密或解密”按钮即可,如图1所示,原始密码为“goodman88”,加密后的密码值为:

MD5(goodman88,32)

=

d5a8e0b115259023faa219f5b53ca522

MD5(goodman88,16)

=

15259023faa219f5

 

图1

md5加密

作为实验数据,我们在生成一组生日的md5密码如下:

MD5(19801230,32)

=

2540bb62336a8eb3ebc1e42ee44c8e3d

MD5(19801230,16)

=

336a8eb3ebc1e42e

(二)在线破解md5密码值

1.通过cmd5网站破解md5密码

在cmd5网站的输入框中输入刚才加密后的md5

32值“d5a8e0b115259023faa219f5b53ca522”,然后单击“md5加密或解密”按钮即可,如图2所示,未能成功破解。

 

图2

通过cmd5网站未能破解md5密码

将第二个生日加密后的md5值“2540bb62336a8eb3ebc1e42ee44c8e3d”,放入cmd5网站进行破解,很快其结果就出来了,如图3所示。

 

图3

破解简单的数字密码

2.在线md5破解网站收费破解高难度的md5密码值

一些在线网站提供的md5密码破解只能破解已经收录和一些简单的密码,对于稍微复杂一点的密码,都不容易被破解;而且对一些稍微有点难度的md5密码值,如果数据库中有,在线网站是要求付费的,例如用一个复杂一点的md5值进行破解,如图4所示,提示找到,但是要求进行付费。

 

图4要求付费才能查看md5密码值

(三)使用字典暴力破解md5密码值

1.再次生成md5密码值

再在cmd5网站生成原密码为“jimmychu246”的md5密码值为:

MD5(jimmychu246,32)

=

437f4fffb6b2e5aaca9fd1712b8ad282

MD5(jimmychu246,16)

=

b6b2e5aaca9fd171

直接运行md5crack4,运行界面如图5所示。

 

图5

md5crack4程序主界面

2.在md5crack4中验证md5值

将需要破解的md5值(437f4fffb6b2e5aaca9fd1712b8ad282)粘贴到“破解单个密文(Single

Cryptograph)”输入框中,如图6所示,如果该md5值是正确的,则会在“破解单个密文”输入框下方显示黑色的“有效(valid)”两个字,否则显示“valid”为灰色。

 

3.使用字典进行破解

在“字符设置(Plaintext

Setting)”中选择“字典(Dictionary)”,并在“N0.1”、“N0.2”以及“N0.3”中选择三个不同的字典,选择完毕后,单击“Start”按钮开始md5破解,破解结束后会给出相应的提示,如图7所示,在本案例中使用字典破解成功,在Result中显示破解的密码为“jimmychu246”。

 

图7使用字典进行破解

4.“使用字符集(Char

Muster)”中的数字进行破解

将上面生成的数字md5值“336a8eb3ebc1e42e”放入单一md5密码破解输入框中,选中“Char

Muster”后,依次可以选择“Number”、“lowercase”、“majuscule”、“special

char”以及“custom”进行破解,在本例中使用数字进行破击,因此

“最小长度(Min

Length)”中设置为“1”,“最大长度(Max

Length)”中设置为“8”,然后单击“开始”按钮,使用数字进行md5破解,尝试破解密码位数从1~9999999之间的所有数字组合,如图8所示,其密码值破解成功,破解结果为“336a8eb3ebc1e42e

---

[19801230]”。

 

图8

使用数字进行破解

说明

(1)在md5crack4中还可以定义数字、大小字母、特殊字符的组合来进行破解。

(2)如果计算机配置比较好,可以设置更多线程。

(3)如果自定义进行破解,建议先选择使用数字,然后依次是数字、大小字母、特殊字符的组合。破解时先易后难,否则破解时间太长。

(4)在md5crack4还可以“使用插件”进行破解。

(5)在md5crack4中还可以设置软件显示的语言版本,一共有中文简体和英语两个版本,单击主界面中的设置(Option),即可进行设置,如图9所示。

 

图9

设置md5crack4

5.一次破解多个密码

将需要破解的md5密码全部存放到一个txt文件中,每一个密码独立一行,然后在md5crack4中单击“破解多个密文”,选择刚才编辑的md5密码文件,如图10所示,选择一种破解方式,在本案例中选择使用数字字典进行破解,最后单击“开始”按钮开始破解。

 

图10

破解多个md5密码值

在md5crack4右下方会显示破解结果,单击“日志”可以查看md5值校验等日志信息,单击“结果”可以查看破解的结果,如图11所示,在结果中会将md5值与原始密码进行一一对应。

 

图11

破解结果

Md5加解密是网络攻防中必须掌握的知识,本文介绍了使用md5cracker以及通过网站来对md5值进行破解,对md5破解,可以先在一些md5破解网站进行破解,如果未能破解,则可以在本地通过md5cracker进行破解。

ps:转载至安天365

密文解密在线转换(解密转换器) 第1张

明文和密文转换

include iostream;

using namespace std;

#define N 6 //定义N的大小

#define M 5 //定义M的大小,N=M

void main()

{

char P[N]={0};

char K[M]={0};

char C[M]={0};//因为要用Ki加密,所以C[]只能有M个大

int i,j;//定义循环变量

cout "请输入明文数组,你可以输入"N"个字符长度"endl;

for (i=0;iN;i++)//为P[N]赋值

{

cout " P"i"=";

cin P[i];

}

cout "请输入密钥数组,你可以输入"M"个字符长度"endl;

for (j=0;jM;j++)//为K[M]赋值

{

cout "K"j"=";

cin K[j];

}

for (i=0;iM;i++)//加密!因为K[j]个数有限,只能用M做为循环次数

{

j=i%(M+1);

C[i]=P[i]+K[j];

cout P[i]endl;

cout K[j]endl;

cout C[i]endl;

if (0C[i])//7F=127

{

//C[cnt]=P[cnt]+K[i%(j+1)];//Ci=Pi+Kj(j=i mod(m+1)) (当Ci=7FH)

C[i]=C[i]+128;

cout C[i]endl;

}

else

{

//C[cnt]=P[cnt]+K[i%(j+1)]-128;//Ci=Pi+Kj-80H(j=i mod(m+1)) (当Ci7FH)

C[i]=C[i];

cout C[i]endl;

}

}

coutendlendl"输出加密后的密文C[i]如下:"endl;

for (i=0;i=40;i++)

cout "#";

cout endl;

for (i=0;iM;i++)//输出加密后的C[i]

{

cout C[i]endl;

}

for (i=0;i=40;i++)

cout "#";

cout endl;

for (i=0;iM;i++)//解密!因为K[j]个数有限,只能用M做为循环次数

{

j=i%(M+1);

if (C[i]=K[j])

{

P[i]=C[i]-K[j]+128;//Pi=Ci-Kj (j=i mod(m+1)) (当Ci=Kj)

}

else

{

P[i]=C[i]-K[j];//80H=128,Pi=Ci-Kj+80H(j=i mod(m+1))(当CiKj)

}

}

coutendlendl"输出解密后的明文P[i]如下:"endl;

for (i=0;i=36;i++)

cout "#";

cout endl;

for (i=0;iN;i++)//输出解密后的P[i]

{

cout P[i]endl;

}

for (i=0;i=36;i++)

cout "#";

cout endlendl;