похоже, методы decode () и encode () с base64 из Guava BaseEncoding не согласованы.
Пример
package com;
import com.google.common.io.BaseEncoding;
public class TestGuavaBase64EncodingDecoding {
private static void printByteArray(String value, byte[] bytes) {
System.out.println("decoded " + value + ":");
for (byte b : bytes) {
System.out.print(b);
System.out.print(".");
}
System.out.println("");
}
private static void testDecodeEncode(String str) {
byte[] bytes =
BaseEncoding.base64().decode(str);
printByteArray("decode(" + str + ")", bytes);
String encoded =
BaseEncoding.base64().omitPadding().encode(bytes);
System.out.println("encoded: " + encoded);
}
public static void main(String... args) {
final String md5_0xFF00 = "0xFF00";
final String md5_0xFF0w = "0xFF0w";
testDecodeEncode(md5_0xFF00);
testDecodeEncode(md5_0xFF0w);
}
}
Результат всегда недопустим, как
декодированное декодирование (0xFF00): - 45.17.69.-45.закодировано: 0xFF0w
декодированное декодирование (0xFF0w): - 45.17.69.-45.закодировано: 0xFF0w