各种格式的编码解码工具类分享(hex解码 base64编码)

各种格式的编码解码工具类分享

1. hex解码工具类

Hex是一种用16进制表示二进制数据的编码方式,我们可以通过Hex解码工具将16进制字符串转换成二进制数据。

以下是实现Hex解码的代码示例:

public class HexUtil {
    /*
     * 将16进制字符串转换为byte数组
     */
    public static byte[] hex2Bytes(String hexString) {
        if (hexString == null || hexString.equals("")) {
            return null;
        }
        hexString = hexString.toUpperCase();
        int length = hexString.length() / 2;
        char[] hexChars = hexString.toCharArray();
        byte[] d = new byte[length];
        for (int i = 0; i < length; i++) {
            int pos = i * 2;
            d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
        }
        return d;
    }

    /*
     * 将一个字符转换为一个字节
     */
    private static byte charToByte(char c) {
        return (byte) "0123456789ABCDEF".indexOf(c);
    }
}

使用示例:

String hexString = "68656C6C6F";
byte[] bytes = HexUtil.hex2Bytes(hexString);
String result = new String(bytes, StandardCharsets.UTF_8);
System.out.println(result);  //输出"hello"

2. Base64编码工具类

Base64是一种基于64个可打印字符来表示二进制数据的编码方式,我们可以通过Base64编码工具将二进制数据转换成Base64字符串。

以下是实现Base64编码的代码示例:

public class Base64Util {
    /*
     * 将byte数组转换为Base64编码的字符串
     */
    public static String encode(byte[] bytes) {
        return Base64.getEncoder().encodeToString(bytes);
    }

    /*
     * 将Base64编码的字符串转换为byte数组
     */
    public static byte[] decode(String base64String) {
        return Base64.getDecoder().decode(base64String);
    }
}

使用示例:

String originalString = "hello";
byte[] bytes = originalString.getBytes(StandardCharsets.UTF_8);
String base64String = Base64Util.encode(bytes);
System.out.println(base64String);  //输出"aGVsbG8="
byte[] bytes2 = Base64Util.decode(base64String);
String result = new String(bytes2, StandardCharsets.UTF_8);
System.out.println(result);  //输出"hello"

总结

以上就是各种格式的编码解码工具类分享的完整攻略。我们可以通过Hex解码工具类将16进制字符串转换成二进制数据,通过Base64编码工具类将二进制数据转换成Base64字符串。这些工具类可以帮助我们在开发中进行数据格式的转换和处理,提高开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:各种格式的编码解码工具类分享(hex解码 base64编码) - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 如何创建和使用Java类?

    创建和使用Java类可以分为以下几个步骤: 创建一个.java文件,命名为你的类名。例如,我们创建一个名为”Person”的类。 在这个文件中定义这个类的属性和方法。例如,我们为”Person”类定义一个属性”name”和一个方法”sayHello”。 public class Person { private String name; public voi…

    Java 2023年4月27日
    00
  • Java参数传递实现代码及过程图解

    Java参数传递实现代码及过程图解 在Java中,方法传递参数是通过按值传递(pass-by-value)实现的。简单来说,就是在传递参数的时候,将参数的值复制一份给方法内部进行操作,不会直接影响原来的变量值。以下是Java参数传递的一些细节和过程图解: 基本数据类型的参数传递 基本数据类型的参数传递就是将值复制给方法内部进行操作,不会对原来的变量值产生影响…

    Java 2023年5月30日
    00
  • Java笔记(16) Collection集合–>Set集合–>HashSet

    1. Set接口基本介绍 Set是无序集合(添加和取出的顺序不一致,但取出的顺序是固定的),没有索引 不允许重复元素,所以最多包含一个null JDK API中Set接口的实现类有: Abstract, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, Enum…

    Java 2023年4月17日
    00
  • java 重试框架 sisyphus 入门介绍

    下面是关于 Java 重试框架 Sisyphus 的入门介绍及完整攻略。 Sisyphus 是什么? Sisyphus 是一个 Java 重试框架。它的主要作用是在某些特定场景下,自动地对失败的操作进行重试。 Sisyphus 可以非常方便地配置,适用于多种使用场景,包括但不限于网络请求、数据库操作等。Sisyphus 还有非常完善的监控和日志记录机制,可以…

    Java 2023年5月19日
    00
  • 基于HttpServletRequest 相关常用方法的应用

    下面我将详细讲解“基于HttpServletRequest 相关常用方法的应用”的完整攻略: 1. HttpServletRequest 简介 HttpServletRequest 是 Java Servlet 规范中的一个接口,用于封装客户端HTTP 请求相关的信息,例如请求方法(GET、POST等)、请求参数、请求头、cookie 等信息,供 Servl…

    Java 2023年6月15日
    00
  • vue之proxyTable代理超全面配置流程

    Vue之proxyTable代理超全面配置流程 概述 Vue.js 是一个构建数据驱动的 web 界面的渐进式框架,使用 Vue 开发前端项目时,经常遇到需要向后端接口发起 HTTP 请求的情况。由于前端和后端常常处于不同的服务器上,因此需要解决跨域的问题。本文将介绍在 Vue 项目中使用 proxyTable 进行接口代理的配置流程。 步骤 步骤一:在we…

    Java 2023年6月15日
    00
  • Struts2 漏洞分析及如何提前预防

    Struts2 是一个流行的 Java Web 应用程序框架,由于其广泛的应用和不断的开发,一些漏洞也逐渐被发现和修复。但是,攻击者仍然可以利用一些未经修补的漏洞对 Struts2 应用程序进行攻击。本文将详细讲解 Struts2 的漏洞及如何在应用程序中提前预防这些漏洞。 Struts2 漏洞分析 Struts2 漏洞的危害 Struts2 的漏洞可能会导…

    Java 2023年5月20日
    00
  • 微信小程序实现多选功能

    微信小程序实现多选功能的完整攻略可以分为以下步骤: 1.在页面中定义 checkbox 组件 首先需要在页面的 wxml 文件中定义多组 checkbox 组件,每个复选框都应该设置不同的 value 值以便于选项的区分,同时为了便于管理,可以用相同的 name 属性将多个选项组成一个组. 下面是一个示例代码: <checkbox-group bind…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部