- 浏览: 1523095 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
public final class Base64 { private static final byte[] DECODE_TABLE = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0 }; // "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ " private static final byte[] ENCODE_TABLE = new byte[] { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 }; static { // create encode table // ENCODE_TABLE = new byte[64]; int index = 0; for (char c = 'A'; c <= 'Z'; c++) ENCODE_TABLE[index++] = (byte) c; for (char c = 'a'; c <= 'z'; c++) ENCODE_TABLE[index++] = (byte) c; for (char c = '0'; c <= '9'; c++) ENCODE_TABLE[index++] = (byte) c; ENCODE_TABLE[index++] = (byte) '+'; ENCODE_TABLE[index++] = (byte) '/'; // create decode table for (int i = 0; i < 64; i++) DECODE_TABLE[(int) ENCODE_TABLE[i]] = (byte) i; } private Base64() { } public static byte[] encode(byte[] data) { if (data == null) return null; int fullGroups = data.length / 3; int resultBytes = fullGroups * 4; if (data.length % 3 != 0) resultBytes += 4; byte[] result = new byte[resultBytes]; int resultIndex = 0; int dataIndex = 0; int temp = 0; for (int i = 0; i < fullGroups; i++) { temp = (data[dataIndex++] & 0xff) << 16 | (data[dataIndex++] & 0xff) << 8 | data[dataIndex++] & 0xff; result[resultIndex++] = ENCODE_TABLE[(temp >> 18) & 0x3f]; result[resultIndex++] = ENCODE_TABLE[(temp >> 12) & 0x3f]; result[resultIndex++] = ENCODE_TABLE[(temp >> 6) & 0x3f]; result[resultIndex++] = ENCODE_TABLE[temp & 0x3f]; } temp = 0; while (dataIndex < data.length) { temp <<= 8; temp |= data[dataIndex++] & 0xff; } switch (data.length % 3) { case 1: temp <<= 8; temp <<= 8; result[resultIndex++] = ENCODE_TABLE[(temp >> 18) & 0x3f]; result[resultIndex++] = ENCODE_TABLE[(temp >> 12) & 0x3f]; result[resultIndex++] = 0x3D; result[resultIndex++] = 0x3D; break; case 2: temp <<= 8; result[resultIndex++] = ENCODE_TABLE[(temp >> 18) & 0x3f]; result[resultIndex++] = ENCODE_TABLE[(temp >> 12) & 0x3f]; result[resultIndex++] = ENCODE_TABLE[(temp >> 6) & 0x3f]; result[resultIndex++] = 0x3D; break; default: break; } return result; } public static byte[] decode(byte[] base64Data) { if (base64Data == null) return null; if (base64Data.length == 0) return new byte[0]; if (base64Data.length % 4 != 0) throw new IllegalArgumentException("数据不完整,长度为: " + base64Data.length); byte[] result = null; int groupCount = base64Data.length / 4; int lastData = base64Data.length; while (base64Data[lastData - 1] == 0x3D) { if (--lastData == 0) return new byte[0]; } result = new byte[lastData - groupCount]; int temp = 0; int resultIndex = 0; int dataIndex = 0; for (; dataIndex + 4 < base64Data.length;) { temp = DECODE_TABLE[base64Data[dataIndex++]]; temp = (temp << 6) + DECODE_TABLE[base64Data[dataIndex++]]; temp = (temp << 6) + DECODE_TABLE[base64Data[dataIndex++]]; temp = (temp << 6) + DECODE_TABLE[base64Data[dataIndex++]]; result[resultIndex++] = (byte) ((temp >> 16) & 0xff); result[resultIndex++] = (byte) ((temp >> 8) & 0xff); result[resultIndex++] = (byte) (temp & 0xff); } temp = 0; int j = 0; for (; dataIndex < base64Data.length; dataIndex++, j++) temp = (temp << 6) + DECODE_TABLE[base64Data[dataIndex]]; for (; j < 4; j++) temp <<= 6; result[resultIndex++] = (byte) ((temp >> 16) & 0xff); if (base64Data[dataIndex - 2] != '=') result[resultIndex++] = (byte) ((temp >> 8) & 0xff); if (base64Data[dataIndex - 1] != '=') result[resultIndex++] = (byte) (temp & 0xff); return result; } public static void main(String[] args) { Base64 base64 = new Base64(); byte [] s= base64.encode("http://212.201.208.22:2212/entry?C=0300000001&ContentID=000001000000045903&F=72103_72104".getBytes()); System.out.println(new String(s)); s=base64.decode(s); System.out.println(new String(s)); } }
发表评论
-
HttpRequestClient
2018-11-21 17:45 587http请求工具 public class WebCon ... -
Spring boot 环境下配置CKEditor添加google map
2017-07-05 14:39 1253本文档基于已经搭建好基础ckeditor的环境上。如:ht ... -
post json
2015-12-30 12:35 533方法一: public static String doP ... -
maven打包成可执行的jar包(package a runnable jar)
2015-04-23 22:01 2212第一步:利用maven-jar-plugin生成当前工程的 ... -
自定义ObjectMapper
2015-03-02 16:57 7758d import java.io.IOExcept ... -
JsonObjectMapper
2015-02-05 10:41 1389import com.fasterxml.jackson. ... -
HttpServletRequestWrapper
2014-10-12 08:15 588请求提交后替换HTML字符 import javax.s ... -
配置javamelody
2014-09-12 14:03 1264参考后面地址修改整理。http://my.oschina.n ... -
getTrace()
2014-08-06 09:14 557/** * 将e.printStackTrace() ... -
获取java对象在内存的地址
2014-07-28 14:59 2860引用stackflow的文章:http://stackove ... -
JMeter入门:Java Request实例
2014-05-08 15:41 2343转自:http://softtest.chin ... -
解决在IE下下载时文件名乱码
2014-01-09 11:24 1051String agent = request.getHead ... -
第一节:编译自定义的Hadoop核心包,去除用户权限检查
2013-11-30 11:59 1058本文参考eclipse连接远程hadoop集群开发时0700 ... -
第二节:win 7下编译eclispe hadoop plugin
2013-11-29 19:12 828本文参照后面地址的Linux编译方式:http: ... -
使用log4j为Tomcat输出日志
2013-11-01 16:42 10336转自:http://hi.baidu.com/y ... -
xStream开发HTTP的XML内容
2013-07-03 09:58 10511、编写自定义XPPDriver代码: package ... -
HttpURLConnection or URLConnection post xml content to web server
2013-05-31 01:56 2051客户端示例1: package client; ... -
java nio学习笔记
2013-03-21 21:41 0直接缓冲区被用于与通道和固有I/O例程交互。它们 ... -
Jsch使用
2012-12-10 17:07 2538Jsch shell模式下的代码示例: 参考: ... -
Exe4j破解_Exe4j注册码
2012-12-06 17:35 33549exe4j是个很好的打包利器,官方下载地址:http://ww ...
相关推荐
本主题聚焦于在Delphi编程环境中如何使用Base64进行编码和解码,以及在与其他语言对接时可能遇到的问题和解决策略。 首先,让我们详细了解Delphi中原生的Base64实现。Delphi提供了`System.NetEncoding`单元,其中...
Base64是一种数据编码方法,常用于在网络上传输二进制数据,因为它可以把任意二进制数据转化为ASCII字符,从而可以在纯文本格式下传输。这个项目实现了用C/C++语言将BMP文件转换为Base64编码,这对于在HTTP协议中...
### Base64与byte[]相互转换 ...通过以上步骤,我们可以清晰地理解如何在Java中实现Base64与byte[]之间的转换以及如何处理Base64中的换行符问题。这对于实际开发工作中处理二进制数据或字符串转换非常有用。
Base64编码是一种广泛用于网络数据传输和存储的编码方式,它将任意二进制数据转化为可打印的ASCII字符序列。这种编码方式基于64个字符的字母数字表,包括大小写字母、数字以及"+"和"/",并用"\n"作为每76个字符后的...
在VB中实现Base64编码和解码功能,可以帮助开发者处理二进制数据的存储和传输问题,尤其是当这些数据包含非ASCII字符,例如中文时。 Base64编码的过程通常是这样的:首先,将输入的二进制数据按照3个字节一组进行...
base64 加解码 base64转hex Base64转图片 图片转Base64工具 可选Unicode UTF8等编码格式。前一个不 支持换行,此版本已支持。 (使用前,麻烦安装DotNet4.0以上版本)
在IT领域,Base64是一种常见的数据编码方法,主要用于将任意二进制数据转换成ASCII字符串,以便在不支持二进制传输的环境下(如电子邮件)进行传递。在这个压缩包中,我们有一个名为"Base64Demo"的项目,它包含了一...
Base64是一种网络上常见的数据编码方式,它将任意二进制数据转化为可打印的ASCII字符,以便在电子邮件等文本环境中传输。Base64编码基于64个字符的字符集,包括大小写字母、数字以及"+"和"/",并且通常在末尾添加一...
这个压缩包包含的文件可能是一个关于BASE64编码的示例程序或者代码库,比如`TestBase64.vbg`可能是一个VBScript的工程文件,`TestApp`可能是应用测试程序,而`Base64`可能包含了BASE64编码的实现代码。 BASE64编码...
Base64编码的关键在于它的字符集,它包含大小写字母(A-Z, a-z)、数字(0-9)以及"+"和"/",最后用"\n"作为换行符(在标准Base64中,换行不是必须的,但在某些实现中为了格式化可能被使用)。在编码过程中,如果...
Base64是一种广泛使用的编码方式,它将任意的二进制数据转换成可打印的ASCII字符,以便在电子邮件、文本文件和其他不支持二进制传输的环境中进行传输。这种编码方式将每3个字节(24位)的二进制数据转化为4个6位的...
Base64字符集包括大小写字母、数字和两个特殊字符'+', '/',同时在传输过程中通常会用'\n'进行换行,但在编码和解码时需要去除这些换行符。 在Java中,我们可以使用`java.util.Base64`类来实现Base64的编码和解码。...
为了确保编码后的字符串在传输过程中不会因换行或空格产生问题,通常会在末尾添加一个或多个等号(`=`)作为填充,以使编码后的长度是4的倍数。等号不携带任何信息,仅用作校验。 在本"Base64编码解码工具"中,提供...
### Base64编码标准中文解析 #### 一、概述 Base64编码是一种常见的二进制数据编码方式,主要用于在电子邮件和其他需要传输非文本数据的应用中。本文章将基于RFC2045标准中文版对Base64编码的原理、算法及应用进行...
3. **Base64编码**:为了将二进制数据转换为Base64字符串,可以编写自定义函数或使用现成的库,如`openssl`库的` BIO_base64`功能,或者`Poco`库的`Net`模块。这些库提供了Base64编码的功能,可以接受字节流并返回...
将字符串str+换行 编码为base64字符串输出。 格式:echo -n "str" | base64 将字符串str编码为base64字符串输出。注意与上面的差别。(2011.08.01 补充) 格式:base64 file 从指定的文件file中读取数据,...
Base64是一种编码方式,常用于在不支持二进制传输的环境中,如...它通过将3个8位字节转换为4个6位的块,使用64个字符的编码表进行映射,并在必要时使用'='进行填充,同时为了适应邮件格式,每76个字符后会添加换行。
- **换行处理**:Base64字符串中可能包含换行符,检验解码器是否能正确处理。 - **错误检测**:测试解码时遇到错误的情况,如无效的Base64字符或长度不匹配。 `base64code`这个文件很可能包含了Base64编解码的C++源...
本文将深入探讨如何使用C#语言实现二进制文件与Base64字符串之间的转换,以及处理换行问题。 Base64是一种用于将二进制数据表示为ASCII字符串的编码方式,常用于在电子邮件、JSON和HTTP协议中传输非文本内容。C#...
4. **不带换行的编码**:默认的Base64编码会在76个字符后添加换行符,以适应邮件系统的限制。但`aiohttp`库提供了`standard_b64encode()`和`standard_b64decode()`,不包含这种行为。 5. **性能优化**:`pybase64`...