|
![]() | 作者: 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号