Base64编码和解码
Base64编码和解码
- DES加密后密文长度是8个整数倍
- 加密后比明文长度变长,所以编码表找不到对应字符,乱码
- 使用Base64编码和解密:从Apache现在
1.加密后密文使用Base64编码
2.解密前对密文解码
public static String encode(byte[] data) {StringBuffer sb = new StringBuffer();int len = data.length;int i = 0;int b1, b2, b3;while (i < len) {b1 = data[i++] & 0xff;if (i == len) {sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[(b1 & 0x3) << 4]);sb.append("==");break;}b2 = data[i++] & 0xff;if (i == len) {sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);sb.append(base64EncodeChars[(b2 & 0x0f) << 2]);sb.append("=");break;}b3 = data[i++] & 0xff;sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]);sb.append(base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]);sb.append(base64EncodeChars[b3 & 0x3f]);}return sb.toString();}public static byte[] decode(String str) throws UnsupportedEncodingException {StringBuffer sb = new StringBuffer();byte[] data = str.getBytes("US-ASCII");int len = data.length;int i = 0;int b1, b2, b3, b4;while (i < len) {/* b1 */do {b1 = base64DecodeChars[data[i++]];} while (i < len && b1 == -1);if (b1 == -1) break;/* b2 */do {b2 = base64DecodeChars[data[i++]];} while (i < len && b2 == -1);if (b2 == -1) break;sb.append((char) ((b1 << 2) | ((b2 & 0x30) >>> 4)));/* b3 */do {b3 = data[i++];if (b3 == 61) return sb.toString().getBytes("ISO-8859-1");b3 = base64DecodeChars[b3];} while (i < len && b3 == -1);if (b3 == -1) break;sb.append((char) (((b2 & 0x0f) << 4) | ((b3 & 0x3c) >>> 2)));/* b4 */do {b4 = data[i++];if (b4 == 61) return sb.toString().getBytes("ISO-8859-1");b4 = base64DecodeChars[b4];} while (i < len && b4 == -1);if (b4 == -1) break;sb.append((char) (((b3 & 0x03) << 6) | b4));}return sb.toString().getBytes("ISO-8859-1");}
转载于:https://www.cnblogs.com/nangongyibin/p/10391651.html
Base64编码和解码相关推荐
- Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式
Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...
- js php base64,JavaScript实现Base64编码与解码的代码详解
本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...
- java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...
为什么要对图片base64编码 base64是网络上最常见的传输8Bit字节代码的编码方式之一.base64主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些二进制字符在传输 ...
- mysql base64 乱码_PHP base64编码后解码乱码的解决办法
在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了 ...
- android Java BASE64编码和解码二:图片的编码和解码
1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...
- Linux上的js解码,使用JavaScript实现Base64编码与解码
我们知道,浏览器的window对象提供有window.atob()和window.btoa()方法可以对字符串进行Base64编码和解码. console.log(window.btoa(window ...
- 【Python】base64模块对图片进行base64编码和解码
图片的base64编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址. 这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要消耗一个 http 请求下载而来的. 没 ...
- Java、JS、OC、Flutter的Base64编码和解码
题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. ** 你可能需要 CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章 本文章将描述在 Jav ...
- Java实现Base64编码和解码的方式
Base64 编码是什么? Base64 是一种编码的方式, 并不是安全领域的加密解密算法. Base64 的目的是把一些二进制符转成普通字符, 方便在网络上传输. 因为有些系统只能使用ASCII字符 ...
最新文章
- 独家 | 数据科学家的必备读物:从零开始用 Python 构建循环神经网络(附代码)...
- c# 再次尝试 连接失败_和平精英ios充值失败该怎么办
- mysql5.7+proxy_mysql5.7使用ProxySQL实现读写分离
- android 动画动态消失,Android属性动画——没有什么动画是一个AnimSet不能解决的...
- 1031 查验身份证 (15分)_21行满分代码
- kafka和zookeeper一键启停脚本(以及kafka关不掉问题解决)
- 词典对象 NSDictionary与NSMutableDictionary
- Linux文本处理tr命令笔记
- LeakCanary,检测安卓,java内存泄漏
- Linux命令行解析参数之getopt_long
- 褚时健去世,柳传志发悼词:我非常钦佩褚老
- BO Xcelsius 2008注册方法
- Ansible主机清单inventory
- 哪些软件是用C++写的
- 赵小楼:《天道》《遥远的救世主》深度解析(22)丁元英为什么不问肖亚文以后有什么打算?
- ros安装yocs_velocity_smoother
- ActiveMQ详解
- RecyclerView的使用(二):添加头部和尾部
- 每周读书#3 - 《活着本来单纯》
- Linux C/C++ 对于SIGBUS、SIGSEGV等崩溃异常捕获实现
热门文章
- iOS单例创建的一点疑惑
- 架构师是如何炼成的?以天猫APP架构开发模式升级工程为例
- ZooKeeper 基本介绍
- 十分钟了解分布式计算:GraphX
- Linux下/etc/fstab文件详解
- Hibernate级联删除提示约束失败DELETE 语句与 REFERENCE 约束FK_SelectCourse_StudentInfo冲突。...
- [ZCCAD-2006.12]CAD练习图例
- 甲骨文第四财季SAAS和PAAS收入增长66%
- Android热修复升级探索——代码修复冷启动方案
- Radware:当前,CDN安全远远不足