Base 64 编码和解码示例代码

2022-08-31 05:37:53

有没有人知道如何使用Base64在Base64中解码和编码字符串。我正在使用以下代码,但它不起作用。

String source = "password"; 
byte[] byteArray = source.getBytes("UTF-16"); 
Base64 bs = new Base64(); 
//bs.encodeBytes(byteArray); 
System.out.println( bs.encodeBytes(byteArray)); 
//bs.decode(bs.encodeBytes(byteArray));
System.out.println(bs.decode(bs.encodeBytes(byteArray)));

答案 1

第一:

  • 选择编码。UTF-8通常是一个不错的选择;坚持编码,这肯定会在两端都有效。很少使用 UTF-8 或 UTF-16 以外的其他方法。

发射端:

  • 将字符串编码为字节(例如text.getBytes(encodingName))
  • 使用类将字节编码为 base64Base64
  • 传输底座64

接收端:

  • 接收 base64
  • 使用类将 base64 解码为字节Base64
  • 将字节解码为字符串(例如new String(bytes, encodingName))

所以像这样:

// Sending side
byte[] data = text.getBytes("UTF-8");
String base64 = Base64.encodeToString(data, Base64.DEFAULT);

// Receiving side
byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, "UTF-8");

或与 :StandardCharsets

// Sending side
byte[] data = text.getBytes(StandardCharsets.UTF_8);
String base64 = Base64.encodeToString(data, Base64.DEFAULT);

// Receiving side
byte[] data = Base64.decode(base64, Base64.DEFAULT);
String text = new String(data, StandardCharsets.UTF_8);

答案 2

对于 Kotlin mb 来说,最好使用这个:

fun String.decode(): String {
    return Base64.decode(this, Base64.DEFAULT).toString(charset("UTF-8"))
}

fun String.encode(): String {
    return Base64.encodeToString(this.toByteArray(charset("UTF-8")), Base64.DEFAULT)
}

例:

Log.d("LOGIN", "TEST")
Log.d("LOGIN", "TEST".encode())
Log.d("LOGIN", "TEST".encode().decode())

推荐