C语言编写base64加密程序
来源:互联网 发布:扣丁学堂安卓视频源码 编辑:程序博客网 时间:2024/05/16 19:03
#include <windows.h>#include <stdio.h>#include <WinSock.h>#include <iostream>using namespace std;#pragma comment(lib, "ws2_32.lib")char convert_to_base64_char(char uc){ if(uc<26) { return 'A'+uc; } if(uc <52 && uc>=26 ) { return 'a'+uc-26; } if( uc <62 && uc>=52) { return '0' + (uc - 52); } if(uc == 62) { return '+'; } return '/';}void encode_to_base64(char *dbuf,char *src,int len){ char t='\0',t2='\0',t3='\0'; int i=0; for(i=0; i<len/3; i++) { t=src[i*3+0]; dbuf[i*4+0]= convert_to_base64_char(((t>>2) & 0x3f));///1 memset(&t,0,sizeof(char)); t2=src[i*3+0]; t3=src[i*3+1]; dbuf[i*4+1]=convert_to_base64_char(((((t2<<6 & 0xc0)>>2) & 0x30) | (t3>>4 & 0x0f)));///2 memset(&t2,0,sizeof(char)); memset(&t3,0,sizeof(char)); t2=src[i*3+1]; t3=src[i*3+2]; dbuf[i*4+2]=convert_to_base64_char(((((t2<<4)& 0xf0)>>2) & 0x3c) | ((t3>>6) & 0x03));///3 memset(&t2,0,sizeof(char)); memset(&t3,0,sizeof(char)); t=src[i*3+2]; dbuf[i*4+3]=convert_to_base64_char((((t<<2)&0xfc)>>2) & 0x3f);///4 memset(&t,0,sizeof(char)); } if(len%3==1) { t=src[i*3+0]; dbuf[i*4+0]=convert_to_base64_char((t>>2) & 0x3f); memset(&t,0,sizeof(char)); t=src[i*3+0]; dbuf[i*4+1]=convert_to_base64_char((((t<<6) & 0xc0)>>2) & 0x30 ); dbuf[i*4+2]='='; dbuf[i*4+3]='='; memset(&t,0,sizeof(char)); return ; } if(len%3==2) { t2=src[i*3+0]; dbuf[i*4+0]=convert_to_base64_char((t2>>2) & 0x3f); memset(&t2,0,sizeof(char)); t2=src[i*3+0]; t3=src[i*3+1]; dbuf[i*4+1]=convert_to_base64_char(((((t2<<6 & 0xc0)>>2) & 0x30) | (t3>>4 & 0x0f))); memset(&t2,0,sizeof(char)); memset(&t3,0,sizeof(char)); t3=src[i*3+1]; dbuf[i*4+2]=convert_to_base64_char((t3<<4 & 0xf0)>>2 & 0x3c); memset(&t3,0,sizeof(char)); dbuf[i*4+3]='='; return ; }}int main(){ char *a="你好测试文件试试 管不 管用"; char b[2120]= {'\0'}; encode_to_base64(b,a,strlen(a)); printf("%s\n",b); return 0;}测试结果:5L2g5aW95rWL6K+V5paH5Lu26K+V6K+VIOeuoeS4jSDnrqHnlKg=
有空再写个解密程序
0 0
- C语言编写base64加密程序
- 单片机Base64 C语言加密
- C语言程序编写
- C语言程序编写
- base64加密程序
- (c语言)文件加密程序
- C的Base64加密
- 关于用c语言编写加密器
- C语言编写时钟程序
- C语言编写五子棋程序
- C语言编写CGI程序
- C语言编写GUI程序
- C语言编写程序计时
- base64高级加密解密程序
- 一个简单的C语言加密程序
- C语言 实现base64
- 用C语言编写串口程序
- C语言编写Windows服务程序。
- Android使用HttpClient请求服务器代码优化版
- 【poj】2828 Buy Tickets、2182 Lost Cow(线段树-单点更新)
- vi / vim 删除以及其它命令
- 全面解析C语言中可变参数列表
- ArrayUtils
- C语言编写base64加密程序
- javax.servlet.ServletException: Error initializing XFireServlet.
- grep 限定连续 RE 字符范围 {}
- UVALive - 3882 And Then There Was One 约瑟夫的变形问题
- 爱因斯坦的阶级问题
- OpenCV:角点检测
- 普通用户(非root非postgres)源码安装postgresql
- 算法训练 最短路
- LeetCode70——Climbing Stairs