日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Base64加密解密算法的C/C++代码实现

發布時間:2025/3/21 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Base64加密解密算法的C/C++代码实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// 頭文件 base64.h#ifndef BASE64_H #define BASE64_Hconst char base[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; /* Base64 編碼 */ char* base64_encode(const char* data, int data_len); /* Base64 解碼 */ char *base64_decode(const char* data, int data_len); #endif
// base64.cpp#include "stdafx.h" #include "Base64.h" #include <stdio.h>int main(int argc, char* argv[]) { char *t = "那個abcd你好嗎,哈哈,ANMOL"; int i = 0; int j = strlen(t); char *enc = base64_encode(t, j); int len = strlen(enc); char *dec = base64_decode(enc, len); printf("\noriginal: %s\n", t); printf("\nencoded : %s\n", enc); printf("\ndecoded : %s\n", dec); free(enc); free(dec); return 0; }/* Base64 編碼 */ char *base64_encode(const char* data, int data_len) { //int data_len = strlen(data); int prepare = 0; int ret_len; int temp = 0; char *ret = NULL; char *f = NULL; int tmp = 0; char changed[4]; int i = 0; ret_len = data_len / 3; temp = data_len % 3; if (temp > 0) { ret_len += 1; } ret_len = ret_len*4 + 1; ret = (char *)malloc(ret_len); if ( ret == NULL) { printf("No enough memory.\n"); exit(0); } memset(ret, 0, ret_len); f = ret; while (tmp < data_len) { temp = 0; prepare = 0; memset(changed, '\0', 4); while (temp < 3) { //printf("tmp = %d\n", tmp); if (tmp >= data_len) { break; } prepare = ((prepare << 8) | (data[tmp] & 0xFF)); tmp++; temp++; } prepare = (prepare<<((3-temp)*8)); //printf("before for : temp = %d, prepare = %d\n", temp, prepare); for (i = 0; i < 4 ;i++ ) { if (temp < i) { changed[i] = 0x40; } else { changed[i] = (prepare>>((3-i)*6)) & 0x3F; } *f = base[changed[i]]; //printf("%.2X", changed[i]); f++; } } *f = '\0'; return ret; } /* 轉換算子 */ static char find_pos(char ch) { char *ptr = (char*)strrchr(base, ch);//the last position (the only) in base[] return (ptr - base); } /* Base64 解碼 */ char *base64_decode(const char *data, int data_len) { int ret_len = (data_len / 4) * 3; int equal_count = 0; char *ret = NULL; char *f = NULL; int tmp = 0; int temp = 0;int prepare = 0; int i = 0; if (*(data + data_len - 1) == '=') { equal_count += 1; } if (*(data + data_len - 2) == '=') { equal_count += 1; } if (*(data + data_len - 3) == '=') {//seems impossible equal_count += 1; } switch (equal_count) { case 0: ret_len += 4;//3 + 1 [1 for NULL] break; case 1: ret_len += 4;//Ceil((6*3)/8)+1 break; case 2: ret_len += 3;//Ceil((6*2)/8)+1 break; case 3: ret_len += 2;//Ceil((6*1)/8)+1 break; } ret = (char *)malloc(ret_len); if (ret == NULL) { printf("No enough memory.\n"); exit(0); } memset(ret, 0, ret_len); f = ret; while (tmp < (data_len - equal_count)) { temp = 0; prepare = 0; while (temp < 4) { if (tmp >= (data_len - equal_count)) { break; } prepare = (prepare << 6) | (find_pos(data[tmp])); temp++; tmp++; } prepare = prepare << ((4-temp) * 6); for (i=0; i<3 ;i++ ) { if (i == temp) { break; } *f = (char)((prepare>>((2-i)*8)) & 0xFF); f++; } } *f = '\0'; return ret; }

總結

以上是生活随笔為你收集整理的Base64加密解密算法的C/C++代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 琪琪色在线观看 | 国产黄片一区二区三区 | 久久久久久久久久99精品 | 高潮在线视频 | 成人做爰黄 | 伊人网在线 | 成人毛片在线 | 人人爽人人爽人人片 | 亚洲精品一区二区三区影院忠贞 | 日韩操操操 | www日韩在线观看 | 亚洲第一色视频 | 狠狠撸在线视频 | 成人免费看片'在线观看 | 欧美精品在线免费观看 | 亚洲免费一级片 | www一区二区三区 | 亚洲综合三区 | 黄色小说网站在线观看 | 日韩女优一区二区 | 97色在线视频 | 在线免费观看视频你懂的 | 操欧美女人 | 亚洲激情网站 | 日本色影院| 亚洲乱码精品久久久久.. | 黑人巨大xxxxx性猛交 | 人妻丰满熟妇无码区免费 | 亚洲女人在线 | 日韩成人高清视频在线观看 | 欧美作爱视频 | 在线视频观看一区二区 | 欧美极品少妇xxxxⅹ猛交 | 欧美另类综合 | 中文字幕高清在线播放 | 日韩欧美视频在线免费观看 | 麻豆av一区 | 国产亚洲欧美一区二区三区 | 中文字幕高清在线 | 韩国伦理片在线看 | 亚洲精品视频播放 | 日本特级淫片 | 精品久久久久久久无码 | 欧美一级做a爰片免费视频 成人激情在线观看 | 国产精品外围 | 色吊丝网站 | xxxxx在线观看 | 日韩大片一区二区 | 日韩国产精品一区二区三区 | 五月激情丁香婷婷 | 男人天堂1024 | 久久天堂av综合合色蜜桃网 | 日韩精品在线观看一区二区三区 | 国产一区二区视频在线观看免费 | 久久国产劲爆∧v内射 | 又爽又黄又无遮挡 | 欧美自拍偷拍一区二区 | 亚洲涩色 | 午夜天堂精品久久久久 | 国产欧美日韩精品一区二区三区 | 国产成人黄色av | 96在线观看| 色综合图片 | 亚洲一区二区三区婷婷 | 成人网在线观看 | 日本不卡在线观看 | 欧美日韩性生活 | 日韩欧美一二三四区 | 97精品一区二区视频在线观看 | www.成人.com| 欧美特黄一级 | 国产 欧美 日韩 一区 | 国产传媒在线观看 | 天堂在线91 | 日本一级一片免费视频 | 国产破处视频 | 操韩国美女 | 欧美精品h| 成年人毛片 | 欧美贵妇videos办公室 | 亚洲熟妇无码一区二区三区 | 亚洲综合精品国产一区二区三区 | 亚洲午夜精品在线 | 久久中文字幕在线 | 久久黄色一级 | 欧美乱码精品一区二区 | 亚洲精品一区二区三区蜜臀 | 免费啊v在线观看 | 大学生av | 欧美熟妇毛茸茸 | 久久久久久综合网 | 在线你懂得 | www.youjizz国产| 91在线观 | 日狠狠| 欧洲成人综合 | 日韩欧美国产三级 | 国产艳妇疯狂做爰视频 | 羞辱狗奴的句子有哪些 |