base64还原 java_Base64是否有java版本的官方实现?

写程序的时候需要用到base64的算法,自己实现时间不够,从网上找,代码无法信赖,所以想问下Base64编码算法是否有java版本的官方实现?或者是否有其他成熟的库实现了base64?

更新

很多同学提到了Apache Commons Codec,查资料看了下,感觉是当前找到的最好的解决方案了,多谢大家让我认识了这么好的库。

编码是开发中基础性的工作,有Codec这种专门解决编码问题的库,实在是方便了很多。建议由同样问题的同学尝试下Codec。

再更新

可以将codec做一个薄封装,简化工作流程,如下,供参考:

package apache.commons.codec;

import org.apache.commons.codec.binary.Base64;

import org.apache.commons.codec.digest.DigestUtils;

import java.io.UnsupportedEncodingException;

/**

* Created by pengzhenhua on 2016/10/2.

* 封装apache commons codec

*/

public class CodeC {

private static Base64 base64 = new Base64();

/**

* 对字符串进行base64编码,返回编码结果

* 默认先对字符串进行utf8解码,然后进行base64编码

* @param str

* @return

*/

public static String base64(String str){

return base64(str , Encode.UTF8);

}

/**

* 使用指定的编码方式对字符串进行解码,然后进行base64编码

* @param str

* @param encode

* @return

*/

public static String base64(String str , Encode encode){

try {

str = base64.encodeToString(str.getBytes(encode.getName()));

} catch (UnsupportedEncodingException e) {

//just ignore

}

return str;

}

/**

* base64解码

* @param str

* @return

*/

public static String base64Decode(String str){

return new String(Base64.decodeBase64(str));

}

/**

* md5加密

* 使用utf8解码字符串

* @param str

* @return

*/

public static String md5(String str){

return md5(str , Encode.UTF8);

}

/**

* md5加密

* 使用指定编码方式对字符串解码,然后md5加密

* @param str

* @param encode

* @return

*/

public static String md5(String str , Encode encode){

try {

str = new String(DigestUtils.md5Hex(str.getBytes(encode.getName())));

} catch (UnsupportedEncodingException e) {

//just ignore

}

return str;

}

enum Encode{

UTF8("UTF8"),

GBK("gbk")

;

private String name;

Encode(String name) {

this.name = name;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值