/*******************************************************************************
* Copyright (c) 2005, 2014 springside.github.io
*
* Licensed under the Apache License, Version 2.0 (the "License");
*******************************************************************************/
package org.springside.modules.utils.text;
import com.google.common.io.BaseEncoding;
/**
* hex/base64 编解码工具集,依赖Guava, 取消了对Commmon Codec的依赖
*/
public class EncodeUtil {
/**
* Hex编码, 将byte[]编码为String,默认为ABCDEF为大写字母.
*/
public static String encodeHex(byte[] input) {
return BaseEncoding.base16().encode(input);
}
/**
* Hex解码, 将String解码为byte[].
*
* 字符串有异常时抛出IllegalArgumentException.
*/
public static byte[] decodeHex(CharSequence input) {
return BaseEncoding.base16().decode(input);
}
/**
* Base64编码.
*/
public static String encodeBase64(byte[] input) {
return BaseEncoding.base64().encode(input);
}
/**
* Base64解码.
*
* 如果字符不合法,抛出IllegalArgumentException
*/
public static byte[] decodeBase64(CharSequence input) {
return BaseEncoding.base64().decode(input);
}
/**
* Base64编码, URL安全.(将Base64中的URL非法字符'+'和'/'转为'-'和'_', 见RFC3548).
*/
public static String encodeBase64UrlSafe(byte[] input) {
return BaseEncoding.base64Url().encode(input);
}
/**
* Base64解码, URL安全(将Base64中的URL非法字符'+'和'/'转为'-'和'_', 见RFC3548).
*
* 如果字符不合法,抛出IllegalArgumentException
*/
public static byte[] decodeBase64UrlSafe(CharSequence input) {
return BaseEncoding.base64Url().decode(input);
}
}