- 浏览: 39606 次
文章分类
最新评论
1.工具类:
2.备考
Java上的Base64
早期作法
早期在Java上做Base64的編碼與解碼,會使用到JDK裡sun.misc套件下的BASE64Encoder和BASE64Decoder這兩個類別,用法如下:
final BASE64Encoder encoder = new BASE64Encoder();
final BASE64Decoder decoder = new BASE64Decoder();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = encoder.encode(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(decoder.decodeBuffer(encodedText), "UTF-8"));
從以上程式可以發現,在Java用Base64一點都不難,不用幾行程式碼就解決了!只是這個sun.misc套件所提供的Base64功能,編碼和解碼的效率並不太好,而且在以後的Java版本可能就不被支援了,完全不建議使用。
Apache Commons Codec作法
Apache Commons Codec有提供Base64的編碼與解碼功能,會使用到org.apache.commons.codec.binary套件下的Base64類別,用法如下:
final Base64 base64 = new Base64();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = base64.encodeToString(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(base64.decode(encodedText), "UTF-8"));
以上的程式碼看起來又比早期用sun.misc套件還要更精簡,效能實際執行起來也快了不少。缺點是需要引用Apache Commons Codec,很麻煩。
Java 8之後的作法
Java 8的java.util套件中,新增了Base64的類別,可以用來處理Base64的編碼與解碼,用法如下:
final Base64.Decoder decoder = Base64.getDecoder();
final Base64.Encoder encoder = Base64.getEncoder();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = encoder.encodeToString(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(decoder.decode(encodedText), "UTF-8"));
與sun.misc套件和Apache Commons Codec所提供的Base64編解碼器來比較的話,Java 8提供的Base64擁有更好的效能。實際測試編碼與解碼速度的話,Java 8提供的Base64,要比sun.misc套件提供的還要快至少11倍,比Apache Commons Codec提供的還要快至少3倍。因此在Java上若要使用Base64,這個Java 8底下的java.util套件所提供的Base64類別絕對是首選!
原文链接:http://magiclen.org/java-base64/
import java.io.UnsupportedEncodingException; import java.util.Base64; public class Base64Util { /** * base64 编码 * * @param str * @return */ public static String encoder(String str){ final Base64.Encoder encoder = Base64.getEncoder(); String strEncoder = null; try { strEncoder = encoder.encodeToString(str.getBytes("UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return strEncoder; } /** * base64 解码 * * @param str * @return */ public static String decoder(String str){ final Base64.Decoder decoder = Base64.getDecoder(); String strEncoder = null; try { strEncoder = new String(decoder.decode(str), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return strEncoder; } /** * test * * @param args */ public static void main(String[] args){ String testStr = "qwerqwfavavaegfgbsd#*#-asdfasd-asdf-fasdf-asd"; String encoderStr = encoder(testStr); System.out.println(encoderStr); String decoderStr = decoder(encoderStr); System.out.println(decoderStr); } }
2.备考
Java上的Base64
早期作法
早期在Java上做Base64的編碼與解碼,會使用到JDK裡sun.misc套件下的BASE64Encoder和BASE64Decoder這兩個類別,用法如下:
final BASE64Encoder encoder = new BASE64Encoder();
final BASE64Decoder decoder = new BASE64Decoder();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = encoder.encode(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(decoder.decodeBuffer(encodedText), "UTF-8"));
從以上程式可以發現,在Java用Base64一點都不難,不用幾行程式碼就解決了!只是這個sun.misc套件所提供的Base64功能,編碼和解碼的效率並不太好,而且在以後的Java版本可能就不被支援了,完全不建議使用。
Apache Commons Codec作法
Apache Commons Codec有提供Base64的編碼與解碼功能,會使用到org.apache.commons.codec.binary套件下的Base64類別,用法如下:
final Base64 base64 = new Base64();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = base64.encodeToString(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(base64.decode(encodedText), "UTF-8"));
以上的程式碼看起來又比早期用sun.misc套件還要更精簡,效能實際執行起來也快了不少。缺點是需要引用Apache Commons Codec,很麻煩。
Java 8之後的作法
Java 8的java.util套件中,新增了Base64的類別,可以用來處理Base64的編碼與解碼,用法如下:
final Base64.Decoder decoder = Base64.getDecoder();
final Base64.Encoder encoder = Base64.getEncoder();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//編碼
final String encodedText = encoder.encodeToString(textByte);
System.out.println(encodedText);
//解碼
System.out.println(new String(decoder.decode(encodedText), "UTF-8"));
與sun.misc套件和Apache Commons Codec所提供的Base64編解碼器來比較的話,Java 8提供的Base64擁有更好的效能。實際測試編碼與解碼速度的話,Java 8提供的Base64,要比sun.misc套件提供的還要快至少11倍,比Apache Commons Codec提供的還要快至少3倍。因此在Java上若要使用Base64,這個Java 8底下的java.util套件所提供的Base64類別絕對是首選!
原文链接:http://magiclen.org/java-base64/
发表评论
-
JVM内存结构及分析
2017-07-16 19:38 563JVM内存模型 名称特征 ... -
JVM调优实例
2017-06-24 12:30 01.背景:由于最近上线新增业务模块,业务量要增加所以对上线服务 ... -
音视频编码转换-ffmpeg
2016-12-30 18:42 15781.前言 由于最近在做ios与android端需要做a ... -
git did not match any file(s) known to git
2016-04-23 23:49 31181.did not match any file(s) kno ... -
Static工具类线程安全问题
2016-01-08 11:39 23471.静态方法 无论是静态方法还是实例方法,在内存中都只 ... -
JavaThread-ThreadLocal笔记
2015-12-23 14:54 5311.ThreadLocal简介 早在JDK 1.2的版本中就提 ... -
JUC-CountDownLatch笔记
2015-12-23 10:53 5621.CountDownLatch简介 CountDownLat ... -
Lambda表达式实现设计模式:命令模式
2015-10-13 09:59 706如何在使用Java 8 Lambda表达式的函数式编程方式时实 ... -
mysql 错误汇总
2015-08-12 16:49 4361.Mysql ERROR 1045 (28000): Acc ... -
Java注解
2015-08-07 11:25 01.@Retention(RetentionPolicy.RU ... -
HttpClient(发送字符串,multipart, 参数等)
2015-07-10 11:12 2083备注:httpclient4.5 发送MultiPart/Pa ... -
转载-搜索引擎实时秒级更新
2015-07-08 14:02 859搜索是很多用户在天 ... -
tomcat-定时任务
2015-03-30 15:27 6571.监听类 import java.util.Timer ... -
JVM-工作原理
2015-03-16 23:26 644一、 JVM的生命周期 1. J ... -
tomcat-启动时启动额外线程并控制线程状态
2015-02-04 18:22 675通过启动线程可以进行后台的操作 1.创建servlet ... -
Exception in thread "main" SoapFault - faultcode: 'soapenv:Server.userException'
2015-01-20 22:32 14281.抛出此类错误大部分都是服务端发布webservice调用出 ... -
Tomcat映射虚拟目录
2015-01-19 22:43 01.设置虚拟目录 <Host>标签</H ... -
android-运行java main方法
2014-12-30 16:10 7191.右键入口类(含有Main方法的)Run Configura ... -
Mybatis 常见错误汇总
2014-12-28 22:31 01.插入数据到数据库是异常 ### Cause: java.s ... -
jsoup
2014-12-17 00:25 01. package com.wuhao.itinfo ...
相关推荐
android Base64编码解码jar包
描述中提到的"Base64编码解码工具V1.5"是一款实用软件,能够帮助用户对Base64编码的数据进行解码。在使用过程中,用户只需选择"Base64"编码选项,软件就会自动处理输入的Base64字符串,将其还原为原始的二进制数据。...
在VC++环境中,开发Base64编解码功能通常涉及到C++语言的基础知识,如字符串处理、内存管理和二进制数据操作。Base64编码主要步骤包括: 1. 将原始二进制数据按每3个字节分为一组,不足3字节的末尾补零。 2. 将每组...
在实际工作中,不仅可以使用如"Base解码工具.exe"这样的工具,也可以借助各种编程语言的库函数,如Python的`base64`模块,Java的`java.util.Base64`类等,进行编码和解码操作。无论是在PKI开发还是其他涉及到二进制...
Base64编解码是一种广泛应用于网络通信和数据存储中的编码技术,它的主要作用是将二进制数据转换为可打印的ASCII字符序列,以便在不支持二进制传输的环境中进行安全传输。Base64编码是基于64个字符的字母数字表,...
总结来说,Base64编解码是将二进制数据转换为ASCII字符串的技术,方便在网络传输中使用。了解其原理和应用可以帮助我们在开发过程中更好地处理二进制数据的编码和解码需求。在实际项目中,根据具体场景选择合适的...
对于压缩包中的"jiami2"文件,可能是一个包含Qt Base64编解码源代码的文件,具体实现可能包括以下几个步骤: 1. 创建一个QByteArray对象,装载待编码或解码的数据。 2. 如果是编码,调用`toBase64()`函数,将...
C++中的Base64编码解码工具是开发者在处理这类问题时的重要辅助,本文将深入探讨Base64编码的原理及其在C++中的实现。 首先,Base64编码的基本原理是将每3个字节(24位)的数据分为4组,每组6位,然后将这6位二进制...
Base64工具类,base转码解码
本文将详细介绍一个基于Java Base64的Android加密解密工具类,该工具类支持公钥加密和私钥解密,具有高度的解耦性,方便集成到项目中。 一、Base64加密解密基础 Base64是一种编码方式,它将任意二进制数据转换为可...
在这个“base64编码解码工具源码”中,我们可以期待找到一个实现了Base64编码和解码功能的应用程序。这个工具具有用户界面,使得非技术用户也能方便地对数据进行编码和解码操作。用户界面可能包含输入框用于输入待...
这很可能是C++实现的Base64编解码库。Base64.cpp可能包含了Base64编码和解码的函数实现,如`encode`和`decode`,而Base64.h则可能定义了相关的类和函数接口。在实际编程中,你可以通过包含Base64.h文件,然后调用...
自已做的BASE64转换工具, 包函了一个BASE64编码解码的类
在提供的压缩包文件"base64"中,可能包含了更具体的Base64编码解码工具的实现,例如自定义类或扩展功能。这些源码可以作为学习和理解Base64编码工作原理的实例,也可以作为基础,帮助你开发更复杂的应用,如文件的...
解码工具会检查字符块的有效性,并去除末尾的填充等号。确保编码和解码的正确性是这类工具的关键功能。 在实际使用中,用户可能会遇到一些问题,例如错误的编码导致解码失败、编码后数据的长度增加、或者编码时未...
这篇博客文章“Base64编解码Android和ios的例子,补充JNI中的例子”很可能是讨论如何在Android和iOS平台上实现Base64的编码和解码,并且可能涉及到了Java本地接口(JNI)的使用。 在Android中,Base64的编码和解码...
base64互相转换工具类,可以字符串进行base64编码和解码,可以把base64转图片,可以把在线或者本地图片转base64码,另外还有去除字符串中的空格、回车、换行符、制表符方法。
综上所述,这个"Base64批量加密工具"涉及了Java编程、文件I/O、异常处理、批处理逻辑、可能的用户界面设计以及编码和解码技术。开发者在创建这个工具时,不仅需要掌握基本的编程技能,还需要了解如何有效地处理大量...
总结起来,实现一个Base64编码工具类并整合到JAR包中,不仅要求能够完成基本的Base64编码和解码,还可能需要支持密码加密解密功能,以提高数据的安全性。这样的工具类和配套库对于在Java环境中处理和传输二进制数据...