安卓下的BASE64编码与解码

本文介绍了在Android中如何使用Base64进行编码和解码,特别强调了需要注意导入正确的Base64包,否则可能导致运行时错误。示例代码展示了使用Base64.DEFAULT参数进行操作,并解释了不同参数的含义。通过测试,显示了编码和解码的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为近期刚好用到这个,然后遇到一些问题,通过查询资料,发现写的好像都不是太清楚。所以我就想着写一个相对详细点的使用教程。
Adroid中通过Base64类直接实现Base64的编码和解码。
使用的时候要导入adroid下的Base64包,这点是要注意的,因为如果不导入到的是java.util下的包的话,编译时不会出错,但是运行时程序会崩溃。
下面就介绍一下怎么使用:
flags参数简介:
(例子中的:Base64.DEFAULT)
CRLF 这个参数看起来比较眼熟,它就是Win风格的换行符,意思就是使用CR LF这一对作为一行的结尾而不是Unix风格的LF
DEFAULT 这个参数是默认,使用默认的方法来加密
NO_PADDING 这个参数是略去加密字符串最后的”=”
NO_WRAP 这个参数意思是略去所有的换行符(设置后CRLF就没用了)
URL_SAFE 这个参数意思是加密时不使用对URL和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/

/*编码*/
public static String encodeBase64(String encodeStr){
        if (encodeStr == null) return null;
        try {
            byte[] b =Base64.encode(encodeStr.getBytes(StandardCharsets.UTF_8),Base64.DEFAULT);
            return new String(b);
        } catch (Exception e) {
            return null;
        }
    }
    /*解码*/
    public static String decodeBase64(String decodeStr){
        if (decodeStr == null) return null;
        try {
            byte[] b = Base64.decode(decodeStr,Base64.DEFAULT);
            return new String(b);
        } catch (Exception e) {
            return null;
        }
    }

测试与结果:

方法调用:
 Log.i("Base64编码", Mqtt.encodeBase64("测试!"));
 Log.i("Base64解码", Mqtt.decodeBase64(Mqtt.encodeBase64("测试!")));
结果打印:
I/Base64编码: 5rWL6K+V77yB
I/Base64解码: 测试!

希望对各位码友有用,谢谢阅读。如果有什么地方错误的,欢迎留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值