Class Base32Provider

java.lang.Object
org.miaixz.bus.core.codec.binary.provider.Base32Provider
All Implemented Interfaces:
Serializable, Decoder<CharSequence,byte[]>, Encoder<byte[],String>

public class Base32Provider extends Object implements Encoder<byte[],String>, Decoder<CharSequence,byte[]>, Serializable
Base32 - encodes and decodes RFC4648 Base32 (see https://datatracker.ietf.org/doc/html/rfc4648#section-6 ) base32就是用32(2的5次方)个特定ASCII码来表示256个ASCII码。 所以,5个ASCII字符经过base32编码后会变为8个字符(公约数为40),长度增加3/5.不足8n用“=”补足。 根据RFC4648 Base32规范,支持两种模式:
  • Base 32 Alphabet (ABCDEFGHIJKLMNOPQRSTUVWXYZ234567)
  • "Extended Hex" Base 32 Alphabet (0123456789ABCDEFGHIJKLMNOPQRSTUV)
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Details

  • Constructor Details

    • Base32Provider

      public Base32Provider()
  • Method Details

    • encode

      public String encode(byte[] data)
      Description copied from interface: Encoder
      执行编码
      Specified by:
      encode in interface Encoder<byte[],String>
      Parameters:
      data - 被编码的数据
      Returns:
      编码后的数据
    • encode

      public String encode(byte[] data, boolean useHex)
      编码数据
      Parameters:
      data - 数据
      useHex - 是否使用Hex Alphabet
      Returns:
      编码后的Base32字符串
    • decode

      public byte[] decode(CharSequence encoded)
      Description copied from interface: Decoder
      执行解码
      Specified by:
      decode in interface Decoder<CharSequence,byte[]>
      Parameters:
      encoded - 被解码的数据
      Returns:
      解码后的数据
    • decode

      public byte[] decode(CharSequence encoded, boolean useHex)
      解码数据
      Parameters:
      encoded - base32字符串
      useHex - 是否使用Hex Alphabet
      Returns:
      解码后的内容