bcb使用 md5
我现在想用bcb做一个登陆框,数据库要用MD5加密,
把加密后的信息导入到sqlserver
在登陆的时候把用户名和密码分别加密
与数据库中的密文进行比较,如果一致,成功登陆
否则,提示
我的问题是:在Bcb中怎么使用Md5算法
请给出详细的代码参考,谢谢了!
[解决办法]
- C/C++ code
/*md5.h*///---------------------------------------#ifndef MD5H#define MD5H#ifndef SystemHPP#include <system.hpp>#endif#ifndef SysUtilsHpp#include <sysUtils.hpp>#endif#ifndef ClassesHpp#include <Classes.hpp>#endif//---------------------------------------namespace hfsoft{//command data type define 类型定义typedef unsigned char HByte; //8位无符号整数typedef char HChar;typedef unsigned short HWord;//16位无符号整数typedef short HShort;//16位有符号整数typedef unsigned long HDWord;//32位无符号整数typedef signed long HInt; //32位有符号整数typedef unsigned __int64 HDDWord; //64位无符号整数typedef signed __int64 HLong; //64位有符号整数typedef bool HBoolean;typedef float HFloat ;typedef double HDouble ;typedef long double HLongDouble ;typedef AnsiString HString;class HMD5{ struct Context { HDWord state[4]; HDWord count[2]; HByte buff[64]; } ; private: Context HContext ; HDWord F(HDWord X, HDWord Y, HDWord Z); HDWord G(HDWord X, HDWord Y, HDWord Z); HDWord H(HDWord X, HDWord Y, HDWord Z); HDWord I(HDWord X, HDWord Y, HDWord Z); HDWord ROTATE_LEFT(HDWord X, HDWord N); HDWord FF(HDWord A, HDWord B, HDWord C, HDWord D, HDWord X, HDWord L, HDWord AC); HDWord GG(HDWord A, HDWord B, HDWord C, HDWord D, HDWord X, HDWord L, HDWord AC); HDWord HH(HDWord A, HDWord B, HDWord C, HDWord D, HDWord X, HDWord L, HDWord AC); HDWord II(HDWord A, HDWord B, HDWord C, HDWord D, HDWord X, HDWord L, HDWord AC); void MD5Init(); void MD5Update(HByte* lpInput, HDWord dwLength); void MD5MemSet(HByte* lpOutput, HByte hfValue, HDWord dwLength); void MD5MemCpy(HByte* lpOutput, HByte* lpInput, HDWord dwLength); void MD5Transform(HByte* lpInput); void Decode(HDWord* lpOutput, HByte* lpInput, HDWord dwLength); void Encode(HByte* lpOutput, HDWord* lpInput, HDWord dwLength); void MD5Final(); char GetChar(HByte hfValue); public: char* GetMD5OfStr(char* lpInput, int iInputLen, char* lpOutput); HString MD5(HString MD5Str);};//end class HMD5 HString MD5(HString MD5Str);}//end namespace#endif//===========================================================