论坛: 编程破解 标题: 关于BASE64编码和异或运算的求助 复制本贴地址    
作者: ma2751_cn [ma2751_cn]       登录
1。BASE64编码的算法是怎样的,怎么算?
   是把原文对应成ASCII码表的字符后,再把ASCII码转换成八位的二进制连起来,然后每六位二进制做一组,换算成十六进制后再对应ASCII码的字符好了对吗?如果二制最后为00,那么BASE64应该是‘a==’对吗?如果是图片或音乐呢?没有原代码怎么算?
2。异或运算是怎么样的算法?比如还原屏幕保护密码?要用到异或运算。

请各位告之,谢谢~~

还是学点基本的东西好~

地主 发表时间: 03/12 23:04

回复: ricky [ricky]   版主   登录
我记得好像前面贴过源代码,你看看前面的贴子

B1层 发表时间: 03/13 09:42

回复: fanyhoo [fanyhoo]   论坛用户   登录
  000wind@163.com
我有这方面的资料,不过用这个联系方便些

B2层 发表时间: 03/13 20:28

回复: ma2751_cn [ma2751_cn]      登录
我搜索不到,能帮帮我吗~~~

最近在学C。

B3层 发表时间: 03/13 21:31

回复: ricky [ricky]   版主   登录
void CBase64Code::OnOK() 
{
BYTE Base64Code[64];
CString b64= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
FILE *S_File,*D_File;
BYTE fbuf[3],buf[4],dbuf[4];

memcpy(Base64Code,b64,64);
int ret;
int count = 0;
S_File = fopen(m_SFileName,"rb");
D_File = fopen(m_DFileName,"wb");
do{
fbuf[0] = 0;
fbuf[1] = 0;
fbuf[2] = 0;
ret = fread(fbuf,1,3,S_File);
buf[0] = fbuf[0]>>2;
buf[1] = ((fbuf[0]&0x03)<<4)|(fbuf[1]>>4);
buf[2] = ((fbuf[1]&0x0f)<<2)|(fbuf[2]>>6);
buf[3] = (fbuf[2]&0x3f);
dbuf[0] = *(Base64Code+buf[0]);
dbuf[1] = *(Base64Code+buf[1]);
dbuf[2] = *(Base64Code+buf[2]);
dbuf[3] = *(Base64Code+buf[3]);
switch(ret)
{
case 1: dbuf[2] = '=';
case 2: dbuf[3] = '=';
case 3: fwrite(dbuf,1,4,D_File);
case 0: break;
}
count++;
if (count==19)
{
count = 0;
dbuf[0] = 0x0d;
dbuf[1] = 0x0a;
fwrite(dbuf,1,2,D_File);
}
}while (ret == 3);
dbuf[0] = 0x0d;
dbuf[1] = 0x0a;
fwrite(dbuf,1,2,D_File);
fclose(S_File);
fclose(D_File);
AfxMessageBox("转换完成");
CDialog::OnOK();
}


B4层 发表时间: 03/15 10:43

回复: ma2751_cn [ma2751_cn]      登录
谢谢了~~~呵呵~~~

B5层 发表时间: 03/15 19:13

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号