⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 md5tmp.cpp

📁 一个MD5消息摘要算法的实现程序。感谢原作者。
💻 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 + -