首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>C/C++>C++>基于C++的DES加密算法实现代码实例
基于C++的DES加密算法实现代码实例
来源: 发布时间:2008-04-01 发布人: 浏览: 人次   字体: [ ]  

void CBase64::Decode(LPCSTR szMessage)
{
if(szMessage != NULL)
  CBase64::Decode((const PBYTE)szMessage, lstrlenA(szMessage));
}

DWORD CBase64::_DecodeToBuffer(const TempBucket &Decode, PBYTE pBuffer)
{
TempBucket Data;
DWORD   nCount = 0;

_DecodeRaw(Data, Decode);

for(int ii = 0; ii < 3; ii++)
{
  pBuffer[ii] = Data.nData[ii];
  if(pBuffer[ii] != 255)
    nCount++;
}

return nCount;
}


void CBase64::_EncodeToBuffer(const TempBucket &Decode, PBYTE pBuffer)
{
TempBucket Data;

_EncodeRaw(Data, Decode);

for(int ii = 0; ii < 4; ii++)
  pBuffer[ii] = Base64Digits[Data.nData[ii]];

switch(Decode.nSize)
{
case 1:
  pBuffer[2] = '=';
case 2:
  pBuffer[3] = '=';
}
}

void CBase64::_DecodeRaw(TempBucket &Data, const TempBucket &Decode)
{
BYTE   nTemp;

Data.nData[0] = Decode.nData[0];
Data.nData[0] <<= 2;

nTemp = Decode.nData[1];
nTemp >>= 4;
nTemp &= 0x03;
Data.nData[0] |= nTemp;

Data.nData[1] = Decode.nData[1];
Data.nData[1] <<= 4;

nTemp = Decode.nData[2];
nTemp >>= 2;
nTemp &= 0x0F;
Data.nData[1] |= nTemp;

Data.nData[2] = Decode.nData[2];
Data.nData[2] <<= 6;
nTemp = Decode.nData[3];
nTemp &= 0x3F;
Data.nData[2] |= nTemp;
}

void CBase64::_EncodeRaw(TempBucket &Data, const TempBucket &Decode)
{
BYTE   nTemp;

Data.nData[0] = Decode.nData[0];
Data.nData[0] >>= 2;

Data.nData[1] = Decode.nData[0];
Data.nData[1] <<= 4;
nTemp = Decode.nData[1];
nTemp >>= 4;
Data.nData[1] |= nTemp;
Data.nData[1] &= 0x3F;

Data.nData[2] = Decode.nData[1];
Data.nData[2] <<= 2;

nTemp = Decode.nData[2];
nTemp >>= 6;

Data.nData[2] |= nTemp;
Data.nData[2] &= 0x3F;

Data.nData[3] = Decode.nData[2];
Data.nData[3] &= 0x3F;
}

BOOL CBase64::_IsBadMimeChar(BYTE nData)
{
switch(nData)
{
case '\r': case '\n': case '\t': case ' ' :
case '\b': case '\a': case '\f': case '\v':
  return TRUE;
default:
  return FALSE;
}
}

void CBase64::_Init()
{ // Initialize Decoding table.

int ii;

for(ii = 0; ii < 256; ii++)
  CBase64::m_DecodeTable[ii] = -2;

for(ii = 0; ii < 64; ii++)
{
  CBase64::m_DecodeTable[Base64Digits[ii]]   = (CHAR)ii;
  CBase64::m_DecodeTable[Base64Digits[ii]|0x80] = (CHAR)ii;
}

CBase64::m_DecodeTable['=']     = -1;
CBase64::m_DecodeTable['='|0x80]   = -1;

CBase64::m_Init = TRUE;
}

共3页: 上一页 [1] [2] 3 下一页
相 关 文 章   发布商链接
·什么是单例模式?C++中单例模式对象的...
·C++语言中多重继承下的虚函数调用
·c++获取Windows 2000/XP操作系统的安...
·实例讲解C++中CopyFileEx函数的简单...
·VC++编写交互程序时将打印结果输出到...
·C++中regex库中静态正则表达式库的好...
·c++实现获取IE缓存文件夹中的文件路...
·如何在C++中创建持久对象的方法
·如何在C++中将数据库数据分行和列保...
·C++实现RGB和HSL颜色转换代码实例
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·如何在C++中创建持久对象的方
·c++实现获取IE缓存文件夹中的
·C++中regex库中静态正则表达...
·VC++编写交互程序时将打印结...
·实例讲解C++中CopyFileEx函数
·c++获取Windows 2000/XP操作...
·C++语言中多重继承下的虚函数
·什么是单例模式?C++中单例模...
·vc命令行调用winrar.exe进行...
·C++计算含括号四则表达式的模
·C++程序中内存划分介绍
·vc读取XML文件中的文本代码
·祥解C++中的this指针
·在Linux下验证日期是否合法
·C++实现仿Office风格的颜色选
热 门 文 章
·实例详细介绍各种字符集编码...
·祥解C++中的this指针
·vc读取XML文件中的文本代码
·vc命令行调用winrar.exe进行...
·C++中regex库中静态正则表达...
·C语言程序设计入门学习六步曲...
·VC++编写交互程序时将打印结...
·C++语言中多重继承下的虚函数...
·C++实现RGB和HSL颜色转换代码...
·实例讲解C++中CopyFileEx函数...
·c++实现获取IE缓存文件夹中的...
·C++不是万能的
·什么是单例模式?C++中单例模...
·谈谈对C和C++中include指令的...
·C++实现对八进制字符串转换为...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .