📄 md5tmp.cpp
字号:
//////////////////////////////////////////////////////////
///md5tmp.cpp
#include "md5.h"
#include <iostream>
#include <String>
using namespace std;
//LPCSTR TargetFile(char *filename=NULL);
////计算文件的MD5值
//void TargetStr(LPCSTR str);
////计算字符串的MD5值
//LPCSTR GetDigestKey();
//取MD5运算后的结果
BOOL Encrypt16(const char *cpPlain,char *cpCipher) // 加密明文,返回16个字符
{
memset(cpCipher,0,sizeof(cpCipher));
CMd5 md5;
md5.TargetStr(cpPlain);
ULONG ulT[4];
ULONG ulT2[2];
*cpCipher = '\0';
if(md5.GetDigestUlong(ulT))
{
for(int i = 0;i < 2;i ++)
{
ulT2[i] = ulT[i] & ulT[i + 2];
char temp[10];
sprintf(temp,"%08x",ulT2[i]);
strcat(cpCipher,temp);
}
return TRUE;
}
else
{
return FALSE;
}
}
void main()
{
cout<<"MD5 加密系统:"<<endl<<endl;
string option;
int select;
while(1)
{
cout<<"Please input your Option :"<<endl
<<"**********************************"<<endl
<<"* *"<<endl
<<"* 1 .文件 2 .字符串 Q .退出 *"<<endl
<<"* *"<<endl
<<"**********************************"<<endl;
cin>>option;
if("Q" == option | "q" == option)
break;
select = atoi(option.c_str());
switch(select)
{
case 1:
{
cout<<"输入要加密的文件名完整路径:"<<endl;
CMd5 md5;
string sourse;
cin>>sourse;
md5.TargetFile((char*)sourse.c_str());
cout<<md5.GetDigestKeyStr()<<endl;
break;
}
case 2:
{
cout<<"输入要加密的字符串:"<<endl;
CMd5 md5;
string sourse;
cin>>sourse;
md5.TargetStr(sourse.c_str());
cout<<md5.GetDigestKeyStr()<<endl;
char cpCipher[17];
Encrypt16(sourse.c_str(),cpCipher);
cout<<cpCipher<<endl;
break;
}
default:
cout<<"你输入的序号不正确(1 or 2 or Q):"<<endl;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -