BASE64加密算法
来源:互联网 发布:淘宝退款售后订单删除 编辑:程序博客网 时间:2024/06/06 04:21
#include <stdio.h>#include <windows.h>char Chars[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890+=";int GetIndex(BYTE b){for (int i = 0; i < 64; i++){if (b == Chars[i]){return i;}}return 0;}VOID Base64Encrypt(BYTE* pScr, int nScrLen, BYTE* pDes, int& nDesLen){int nCount = nScrLen / 3;int i;for (i = 0; i < nCount; i++){pDes[i * 4] = Chars[(pScr[3 * i] & 252) >> 2];pDes[i * 4 + 1] = Chars[((pScr[3 * i] & 3) << 4) + ((pScr[3 * i + 1] & 240) >> 4)];pDes[i * 4 + 2] = Chars[((pScr[3 * i + 1] & 15) << 2) + ((pScr[3 * i + 2] & 192) >> 6)];pDes[i * 4 + 3] = Chars[pScr[3 * i + 2] & 63];}nDesLen = nCount * 4;nCount = nScrLen % 3;if (nCount == 1){pDes[i * 4] = Chars[(pScr[3 * i] & 252) >> 2];pDes[i * 4 + 1] = Chars[((pScr[3 * i] & 3) << 4)];nDesLen += 2;}else if (nCount == 2){pDes[i * 4] = Chars[(pScr[3 * i] & 252) >> 2];pDes[i * 4 + 1] = Chars[((pScr[3 * i] & 3) << 4) + ((pScr[3 * i + 1] & 240) >> 4)];pDes[i * 4 + 2] = Chars[((pScr[3 * i + 1] & 15) << 2)];nDesLen += 3;}}VOID Base64Decrypt(BYTE* pScr, int nScrLen, BYTE* pDes, int& nDesLen){int nCount = nScrLen / 4;int i;for (i = 0; i < nCount; i++){pDes[i * 3] = (GetIndex(pScr[i * 4]) << 2) + (GetIndex(pScr[i * 4 + 1]) >> 4);pDes[i * 3 + 1] = ((GetIndex(pScr[i * 4 + 1]) & 15) << 4) + (GetIndex(pScr[i * 4 + 2]) >> 2);pDes[i * 3 + 2] = ((GetIndex(pScr[i * 4 + 2]) & 3) << 6) + (GetIndex(pScr[i * 4 + 3]));}nDesLen = 3 * nCount;if (nScrLen % 4 == 2){pDes[i * 3] = (GetIndex(pScr[i * 4]) << 2) + (GetIndex(pScr[i * 4 + 1]) >> 4);nDesLen++;}else if (nScrLen % 4 == 3){pDes[i * 3] = (GetIndex(pScr[i * 4]) << 2) + (GetIndex(pScr[i * 4 + 1]) >> 4);pDes[i * 3 + 1] = ((GetIndex(pScr[i * 4 + 1]) & 15) << 4) + (GetIndex(pScr[i * 4 + 2]) >> 2);nDesLen += 2;}}int main(void){BYTE buff1[24] = { 0 };BYTE buff2[24] = { 0 };int nLen1 = 0;int nLen2 = 0;BYTE Str[] = "Hello a World";Base64Encrypt(Str, sizeof(Str), buff1, nLen1);Base64Decrypt(buff1, nLen1, buff2, nLen2);return 0;}
0 0
- Base64加密算法
- 加密算法-BASE64
- Base64加密算法
- BASE64加密算法
- Android加密算法:AES、Base64加密算法
- base64加密算法(一)
- 自定义 Base64 加密算法
- base64 加密算法的实现
- 自定义 Base64 加密算法
- java 加密算法 base64
- java 加密算法 base64
- java base64加密算法
- MD5 SHA1 BASE64加密算法
- MD5 SHA1 BASE64加密算法
- iOS中Base64加密算法
- java Base64加密算法
- Base64一些加密算法
- java 加密算法 base64
- CSS布局方案
- 日志打印-log4j
- Git使用详细教程
- weblogic 10.3密码重置
- Android截屏方案
- BASE64加密算法
- 第二节:Maven的安装与配置
- JS模块化简单实现
- 808 协议的解析
- Camera源码解析之数据传递
- Android Fragment应用实战,使用碎片向ActivityGroup说再见
- Android开发人员不得不收集的代码(持续更新中)
- 安卓常用调试工具
- Android滚动截屏,ScrollView截屏,Listview截屏,Recyclerview截屏