Java解析和转化64位字符串是有两种方式的
1.Java API本身自带功能
2.Apache做的共同Jar文件
public static String ecodeBase64(byte[] buf) {
return (new BASE64Encoder()).encode(buf);
}
public static byte[] decodeBase64(String buf) {
try {
return (new BASE64Decoder()).decodeBuffer(buf);
} catch (IOException e) {
}
return null;
}
//apache jar
public static String ecodeBase64_Common(byte[] buf) {
return Base64.encodeBase64String(buf);
}
public static byte[] decodeBase64_Common(String buf) {
return Base64.decodeBase64(buf);
}
public static String remove(String str) {
return str.substring(0, str.length() - 1);
}
对于上面两个方案,有个小问题
encode的时候会出现末尾出现额外字符的情况
我写了解决方案就是将末尾字符去掉remove方法
具体的问题的原因大概是java本身是127位的关系而不是128位的缘故
好了
上面代码我写了一个例子:
package com.java;
import java.io.IOException;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Test {
public static void main(String[] args) {
System.out.println(remove(ecodeBase64(decodeBase64("chenhailong"))));
System.out.println(remove(ecodeBase64_Common(decodeBase64_Common("chenhailong"))));
}
public static String ecodeBase64(byte[] buf) {
return (new BASE64Encoder()).encode(buf);
}
public static byte[] decodeBase64(String buf) {
try {
return (new BASE64Decoder()).decodeBuffer(buf);
} catch (IOException e) {
}
return null;
}
public static String ecodeBase64_Common(byte[] buf) {
return Base64.encodeBase64String(buf);
}
public static byte[] decodeBase64_Common(String buf) {
return Base64.decodeBase64(buf);
}
public static String remove(String str) {
return str.substring(0, str.length() - 1);
}
}
希望对你有帮助
分享到:
相关推荐
在这里,`String.format()`和`BigInteger`用于将字符串转换为16进制,而`Base64.getDecoder().decode()`则用于将16进制字符串解码回原始的字节数组,再转化为字符串。 在实际应用中,你可能还会遇到其他复杂情况,...
Base64是一种将二进制数据转换为ASCII字符串表示形式的方法。它主要用于处理非文本数据的存储和传输,例如图像、视频等多媒体文件。由于互联网传输过程中可能会遇到只支持ASCII字符的数据通道,因此Base64编码被广泛...
这里特别提到了两种密文格式,即Base64编码和16位字符串格式,这表明代码可能提供了对这两种输出格式的支持。 Base64编码是一种将二进制数据转换为可打印ASCII字符的方法,常用于在网络上传输和存储非ASCII字符。16...
BASE64Encoder.jar 是一个Java实现的Base64编码解码工具包,它主要用于在ASCII字符串和二进制数据之间进行转换。Base64是一种网络上常见的数据编码方式,尤其在电子邮件、HTTP传输以及XML文档中广泛使用。这是因为...
Base64是一种在不支持二进制数据的文本环境下,用于传输和存储二进制数据的编码方式。它将任意二进制数据转换为可打印的ASCII字符序列,以确保数据的安全传输。在这个主题中,我们将深入探讨如何实现一个Base64编码...
3. **文件读写**:在批量加密文件时,我们需要使用`java.io`包中的类,如`FileInputStream`和`FileOutputStream`,来读取原始文件并写入加密后的Base64字符串到新文件中。 4. **异常处理**:在处理文件时,必须考虑...
在标题提到的"BASE64及GSON"中,我们关注的是两种关键的技术:Base64编码和Google的Gson库。这两种技术在Android应用开发中扮演着重要角色,尤其是在前端与后端数据交互时。 首先,让我们来了解Base64编码。Base64...
Base64编码是一种在互联网上常见的数据编码方式,主要用于在不支持二进制传输的环境...通过提供的"FileToBase64"文件,我们可以看到一个具体的示例,如何将一个文件内容转换为Base64字符串,并进行相应的操作和解析。
Base64编码在Java中可以通过`java.util.Base64`类进行操作,提供`getEncoder`和`getDecoder`方法来编码和解码字符串。在进行DES加解密前,原始数据通常需要先用Base64编码,加密后得到的密文也需要Base64解码才能...
通常,短网址服务的核心在于将一个长URL映射到一个短的、唯一的字符串,同时能反向解析回原来的长URL。本文将深入探讨两种不同的算法实现,并以Java代码为例进行解释。 首先,我们来看第一种算法——哈希算法。哈希...
Base58是一种非标准的字符集,常用于比特币和其他加密货币中,以表示长的数字或字母字符串,以避免与数字0、O、字母l和字母I混淆,提高可读性。这个库可能是为Java开发者提供方便的工具,让他们能够轻松地在应用程序...
开发者通常使用JSON库或者内置的JSON解析器将JSON字符串转化为编程语言中的数据结构,例如在Java中可以使用`org.json`库,Python中则有内置的`json`模块。 `byte[]`在Java中代表一个字节数组,它是处理二进制数据的...
Base64是一种编码方法,可以将任意二进制数据转化为ASCII字符,这样就可以直接在文本中包含图片数据。在Word文档中,我们可以直接将Base64编码的字符串插入到一个特殊的HTML标签(如`<img>`)的`src`属性中,Word会...
它将每3个字节转化为4个64字符集中的字符,结果字符串长度通常是原始长度的4/3。 4. **AES加密**:Advanced Encryption Standard(AES)是一种对称加密算法,具有速度快、安全性高的特点,广泛应用在数据加密中。...
Base64是一种用于将二进制数据转换为ASCII字符串的标准编码方式。这种编码方式通常用于将图片、音频、视频等二进制文件嵌入到HTML、XML或其他纯文本格式中。通过Base64编码,可以将图像数据转化为可读的文本形式,...
Java提供了`Base64`类来进行Base64编码和解码。`Base64.getEncoder().withoutPadding()`用于去除编码后的等号填充,`Base64.getDecoder().decode()`则用于解码。 对于字节数组转换为16进制字符串,这个操作在展示...
它使用字符'0'到'9'和'A'到'F'来表示每个字节的高四位和低四位,使得每个字节被表示为两个十六进制数字。 2. `decode`: 反向操作,将16进制字符串解析回其原始字节数组。这个过程需要确保输入字符串的长度是偶数,...
其次,Base64是一种用于将二进制数据编码为ASCII字符串的编码方式,常用于在电子邮件系统和其他文本环境中传输二进制数据。Base64编码将每3个字节转换为4个6位的字符,总长度为64个字符的字符集,包括大小写字母、...
Base64编码将每3个字节的数据转换为4个字符的字符串表示,每个字符在64个可打印字符集中。Apache Commons Codec库提供了Base64类来执行Base64编码和解码操作,这对于处理图片、PDF文件或任何非文本数据在网络上传输...
4. **响应输出**:最后,将生成的验证码图像和对应的字符串编码(如Base64)保存在session中,然后以JPEG或PNG格式发送到客户端。 接下来,我们转向JSP生成验证码的方法。JSP(JavaServer Pages)是一种动态网页...