老文章档案 · 2003 年

crypto++5.0应用一例

破解教程 · 加密教学 · 2003-06-22 · 作者:yyxzz 人气: · 出处:嬴政天下整理收藏)

/*

目标为娃娃[CCG]的在论坛的文章

一篇关于密码学的入门级破解实例-BiSHoP's CrackMe4 (30千字)

地址见http://www.chat001.com/forum/crackforum/245341.html

根据娃娃老鸟(三年算老鸟了吧)的结论

Registeration Code = [ MD5( Name + Organization ) ^ D ] MOD N

已知N , D也已经用RSATools算出

*/

#include <iostream>

#include <string.h>

#include "../crypto50/hex.h" //HexEncoder

#include "../crypto50/md5.h" // MD5

#include "../crypto50/filters.h"

#include "../crypto50/files.h" //FileSink

#include "../crypto50/rsa.h" //rsa

#include "../crypto50/nbtheory.h" //Integer 大数

int main(int argc, char* argv[])

{

using namespace std;

using namespace CryptoPP;

MD5 md5;

string strDigest; //md5 摘要

RSAFunction rsa; //rsa

Integer plaintext; //明文 即注册码

char name[100],organization[100]; //姓名,组织

cout << "Name: "; //输入姓名

ws(cin);

cin.getline(name,100);

cout << "Organization: "; //输入组织

ws(cin);

cin.getline(organization,100);

//计算摘要,结果以16进制方式放在strDigest中

HashFilter hashFilter(md5, new HexEncoder(new StringSink(strDigest)));

hashFilter.Put((const byte*)name, strlen(name)); //put name

hashFilter.Put((const byte*)organization, strlen(organization)); //put organization

hashFilter.MessageEnd();

strDigest="0x"+strDigest;

string letmeat="李嘉欣恶啃到掉渣,让我啃吧,让我啃吧!"; //==>小心花指令

Integer c((const char*) strDigest.data()); //c以16进制初始化

Integer d("0x1E2D9B52ADCBC20DCCDE3C721AA740E83"); //d

Integer n("0x24DFDA27FA14D3F27DDF62CEA5D2381F9"); //n

rsa.Initialize(n,d); //初始化

plaintext = rsa.ApplyFunction(c); //解密 得到明文

//由于未知道有没有方便的方法输出Integer对应的十六进制,所以只好一个一个byte的干了:<

byte* buffer=new byte[1024];

for (int i=0;i<plaintext.ByteCount();i++)

buffer[plaintext.ByteCount()-1-i]=plaintext.GetByte(i); //注意高位在后

buffer[plaintext.ByteCount()]=0;

//构造一条pipeline 一般地 pipeline的头为Source 尾为Sink 中间为各种的filter类

StringSource(buffer,plaintext.ByteCount(), true,

new HexEncoder( //编码为16进制

new FileSink(cout))); //输出到屏幕

cout << endl;

return 0;

}

/*

我的注册码 (算娃娃的那两个注册码发现在code的前面比他的多了个0)

name=yyxzz

organization=[CCG]

code=D54E3A1976B790C3FCCE022B777FA875

有兴趣的朋友可参考如下网站或资料

crypto++作者weidai(相信是一个具有华人血统的snooker高手) 其中的faq不可不看

http://www.eskimo.com/~weidai/cryptlib.html

doxygen 的主页 http://www.trolocsis.com/crypto++/index.html

CryptoPPGuide.chm 在google上 虽然有点过时,但还是很有用的

yyxzz[CCG] 2002.12.29

*/ (出处:嬴政天下整理收藏)

相关文章:

·ASProtect的加密算法初步分析

·我的PE程序加密核心代码(MASM 6.0)

·软磁盘反拷贝加密技术

·加密算法之RSA算法

·加密算法之DES算法

·加密算法之ElGamal算法

·加密算法之DSA算法

·加密算法之MD5算法

·加密算法之BLOWFISH算法

·软磁盘反拷贝加密技术

相关软件:

·加密终结者 v1.0破解版

·加密大师v1.0专业版注册码文件

·网页加密器(HTMLEncryptor)v1.21

·文件加密工具fedt for windows v1.5

·加密大师v3.0

·超级加密光盘破解器(hcssee)

·MD5加密计算工具

·顶天加密宝v1.01

·小小加密锁 v1.10

·加密精灵(EncryptGenie) v2.64

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史