Base64加密解密

Base64加密解密

参考

Java8 Base64
BASE64在线加密解密html

Android自带Base64加密

import android.util.Base64;
String encode2 = new String(Base64.encode("123456".getBytes(), Base64.DEFAULT));    // 结果为"MTIzNDU2\n"
// encodeToString内部其实也是调用encode方法,若想直接返回String,推荐用该方法
String encode1 = Base64.encodeToString("123456".getBytes(), Base64.DEFAULT);    // 结果为"MTIzNDU2\n"
复制代码

这里要注意以上方法最终返回的结果都有换行符\n,若是不要换行能够用trim()作如下处理java

import android.util.Base64;
String encode2 = new String(Base64.encode("123456".getBytes(), Base64.DEFAULT)).trim();    // 结果为"MTIzNDU2"
String encode1 = Base64.encodeToString("123456".getBytes(), Base64.DEFAULT).trim();    // 结果为"MTIzNDU2"
复制代码

Android自带Base64解密

import android.util.Base64;
String decode1 = new String(Base64.decode("MTIzNDU2".getBytes(), Base64.DEFAULT));  // 结果为"123456"
// 该方式内部其实也是调用上面那个方法,省去了getBytes(),推荐用此方法
String decode2 = new String(Base64.decode("MTIzNDU2", Base64.DEFAULT)); // 结果为"123456"
复制代码

Java自带Base64加密解密

参考Java8 Base64
以上例子用的是Android自带的android.util.Base64
其实Java也有个java.util.Base64,可是这个类需在Android API 26及以上才能够使用android

String encode1 = new String(Base64.getEncoder().encode("123456".getBytes()));    // 结果为"MTIzNDU2"
String encode2 = Base64.getEncoder().encodeToString("123456".getBytes());    // 结果为"MTIzNDU2"

String decode1 = new String(Base64.getDecoder().decode("MTIzNDU2".getBytes()));    // 结果为"123456"
String decode2 = new String(Base64.getDecoder().decode("MTIzNDU2"));    // 结果为"123456"
复制代码

能够看到编码的结果不像Android自带的末尾还有换行符\nbash

关于Java的Base64还有如下方法微信

  • Base64.getUrlEncoder();
  • Base64.getMimeEncoder();
  • Base64.getUrlDecoder();
  • Base64.getMimeDecoder();

这里再也不展开,之后另开一篇文章介绍
若是你喜欢个人文章,能够关注个人微信公众号,能够看到我最新发布的文章
编码

相关文章
相关标签/搜索