Apache Codec Base16 编解码

本文将介绍怎样使用 Apache Codec 的 Base16 类实现 base 16 编解码

Apache Codec 的 org.apache.commons.codec.binary.Base16 提供 base16 编码和解码,Base16 类是线程安全的。

此实现严格遵循 RFC4648,因此与 Base 32 和 Base 64 实现不同,它不忽略无效的字母表字符或空格,也不提供块字符或填充字符。

除了默认的大写字母之外,RFC 4648中指定的惟一附加功能是支持使用小写字母表。

示例代码

(1)使用 Base16 实现简单的编码和解码,代码如下:

package com.huangx.codec.base16;

import org.apache.commons.codec.binary.Base16;

public class Base16Demo {

    public static void main(String[] args) {
        // 创建 Base16 对象
        Base16 base16 = new Base16();

        // 原始字符串
        String str = "hello world";

        // 加密
        String encodeStr = new String(base16.encode(str.getBytes()));
        System.out.println(encodeStr);

        // 解密
        System.out.println(new String(base16.decode(encodeStr.getBytes())));
    }

}

运行上面代码,输出结果如下:

68656C6C6F20776F726C64
hello world

(2)使用 encodeAsString() 和 encodeToString() 方法加密,直接返回字符串。代码如下:

package com.huangx.codec.base16;

import org.apache.commons.codec.binary.Base16;

public class Base16Demo2 {

    public static void main(String[] args) {
        // 创建 Base16 对象
        Base16 base16 = new Base16();

        // 原始字符串
        String str = "hello world";

        // 加密
        String encodeStr = base16.encodeAsString(str.getBytes());
        String encodeStr2 = base16.encodeToString(str.getBytes());
        System.out.println(encodeStr);
        System.out.println(encodeStr2);

        // 解密
        System.out.println(new String(base16.decode(encodeStr)));
    }

}

运行上面代码,输出结果如下:

68656C6C6F20776F726C64
68656C6C6F20776F726C64
hello world
学习有两忌,自高和自狭。 —— 书摘
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号