类 Base64

java.lang.Object
com.alibaba.nacos.common.codec.Base64

public class Base64 extends Object
Provides Base64 encoding and decoding as defined by RFC 2045.

This class implements section 6.8. Base64 Content-Transfer-Encoding from RFC 2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies by Freed and Borenstein.

The class can be parameterized in the following manner with various constructors:

  • URL-safe mode: Default off.
  • Line length: Default 76. Line length that aren't multiples of 4 will still essentially end up being multiples of 4 in the encoded data.
  • Line separator: Default is CRLF ("\r\n")

Since this class operates directly on byte streams, and not character streams, it is hard-coded to only encode/decode character encodings which are compatible with the lower 127 ASCII chart (ISO-8859-1, Windows-1252, UTF-8, etc).

This class is not thread-safe. Each thread should use its own instance.

从以下版本开始:
1.0
版本:
$Revision: 1080712 $
作者:
Apache Software Foundation
另请参阅:
RFC 2045
  • 构造器概要

    构造器
    构造器
    说明
    Creates a Base64 codec used for decoding (all modes) and encoding in URL-unsafe mode.
    Base64​(int lineLength, byte[] lineSeparator, boolean urlSafe)
    Creates a Base64 codec used for decoding (all modes) and encoding in URL-unsafe mode.
  • 方法概要

    修饰符和类型
    方法
    说明
    static byte[]
    decodeBase64​(byte[] base64Data)
    Decodes Base64 data into octets.
    static byte[]
    encodeBase64​(byte[] binaryData)
    Encodes binary data using the base64 algorithm but does not chunk the output.
    static byte[]
    encodeBase64​(byte[] binaryData, boolean isChunked, boolean urlSafe, int maxResultSize)
    Encodes binary data using the base64 algorithm, optionally chunking the output into 76 character blocks.
    protected boolean
    isInAlphabet​(byte octet)
    Returns whether or not the octet is in the Base32 alphabet.

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • Base64

      public Base64()
      Creates a Base64 codec used for decoding (all modes) and encoding in URL-unsafe mode.

      When encoding the line length is 0 (no chunking), and the encoding table is STANDARD_ENCODE_TABLE.

      When decoding all variants are supported.

    • Base64

      public Base64(int lineLength, byte[] lineSeparator, boolean urlSafe)
      Creates a Base64 codec used for decoding (all modes) and encoding in URL-unsafe mode.

      When encoding the line length and line separator are given in the constructor, and the encoding table is STANDARD_ENCODE_TABLE.

      Line lengths that aren't multiples of 4 will still essentially end up being multiples of 4 in the encoded data.

      When decoding all variants are supported.

      参数:
      lineLength - Each line of encoded data will be at most of the given length (rounded down to nearest multiple of 4). If lineLength <= 0, then the output will not be divided into lines (chunks). Ignored when decoding.
      lineSeparator - Each line of encoded data will end with this sequence of bytes.
      urlSafe - Instead of emitting '+' and '/' we emit '-' and '_' respectively. urlSafe is only applied to encode operations. Decoding seamlessly handles both modes.
      抛出:
      IllegalArgumentException - The provided lineSeparator included some base64 characters. That's not going to work!
      从以下版本开始:
      1.4
  • 方法详细资料

    • encodeBase64

      public static byte[] encodeBase64(byte[] binaryData)
      Encodes binary data using the base64 algorithm but does not chunk the output.
      参数:
      binaryData - binary data to encode
      返回:
      byte[] containing Base64 characters in their UTF-8 representation.
    • encodeBase64

      public static byte[] encodeBase64(byte[] binaryData, boolean isChunked, boolean urlSafe, int maxResultSize)
      Encodes binary data using the base64 algorithm, optionally chunking the output into 76 character blocks.
      参数:
      binaryData - Array containing binary data to encode.
      isChunked - if true this encoder will chunk the base64 output into 76 character blocks
      urlSafe - if true this encoder will emit - and _ instead of the usual + and / characters.
      maxResultSize - The maximum result size to accept.
      返回:
      Base64-encoded data.
      抛出:
      IllegalArgumentException - Thrown when the input array needs an output array bigger than maxResultSize
      从以下版本开始:
      1.4
    • decodeBase64

      public static byte[] decodeBase64(byte[] base64Data)
      Decodes Base64 data into octets.
      参数:
      base64Data - Byte array containing Base64 data
      返回:
      Array containing decoded data.
    • isInAlphabet

      protected boolean isInAlphabet(byte octet)
      Returns whether or not the octet is in the Base32 alphabet.
      参数:
      octet - The value to test
      返回:
      true if the value is defined in the the Base32 alphabet false otherwise.