爱生活,爱分享


java加密-02 java实现Base64加密

haiten 2019-09-08 520浏览 0条评论
首页/正文
分享到: / / / /

Base 64 算法

产生:邮件的“历史问题”,基于64个可打印字符来表示二进制数据

定义:基于64个字符的编码算法,算法原理简介见博文:BASE64算法实现和使用说明

衍生:Base16、Base32、Url Base64;

应用场景:e-mail、密钥、证书文件;

Base64 算法以替换方式实现加解密,不符合柯克霍夫原则;

JDK 实现

public static void jdkBase64() throws IOException {
    // 编码
    BASE64Encoder encoder = new BASE64Encoder();
    String encodeStr = encoder.encode(src.getBytes());
    System.out.println("encodeStr:" + encodeStr);

    // 解码
    BASE64Decoder decoder = new BASE64Decoder();
    byte[] decode = decoder.decodeBuffer(encodeStr);
    String decodeStr = new String(decode);
    System.out.println("decodeStr:" + decodeStr);
}

Commons Codec 实现

public static void ccBase64() {
    String encodeStr = Base64.encodeBase64String(src.getBytes());
    System.out.println("encodeStr:" + encodeStr);

    byte[] decode = Base64.decodeBase64(encodeStr);
    String decodeStr = new String(decode);
    System.out.println("decodeStr:" + decodeStr);
}

Bouncy Castle 实现

public static void bcBase64() {
    byte[] encode = org.bouncycastle.util.encoders.Base64.encode(src.getBytes());
    String encodeStr = new String(encode);
    System.out.println("encodeStr:" + encodeStr);

    byte[] decode = org.bouncycastle.util.encoders.Base64.decode(encodeStr);
    String decodeStr = new String(decode);
    System.out.println("decodeStr:" + decodeStr);
}

一般情况下,不推荐使用 JDK 提供的实现,而是使用 Commons Codec 提供的实现。

主要知识点来源于慕课慕课网上 moocer老师 提供的 java 加密系列教程。 原创不易,如需转载,请标明出处!

最后修改:2019-09-08 03:58:41 © 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

上一篇

发表评论

说点什么吧~

评论列表

还没有人评论哦~赶快抢占沙发吧~