Base64主要把一些二进制数转成普通字符用于网络传输。当然也可以用于加密,只是加密的目的不是为了安全。这种加密方式主要就是“防君子不防小人。我这次的目的主要是记录一下用base64来做小文件或图片的上传。
base64是一种编码方式,将3字节(3*8=24比特)的数据按6比特重新分组,分成4组,变成4字节的数据(字节的高位用0填充)
听着好像挺玄乎的,其实也就那么回事,等以后有时间了去研究的如何编码的。这里直接了解用法。
java端的简单例子
FileInputStream inputStream = new FileInputStream("D:\\111.jpg");
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
inputStream.close();
BASE64Encoder base64Encoder = new BASE64Encoder();
String encode = base64Encoder.encode(bytes);
System.out.println(encode);
BASE64Decoder base64Decoder = new BASE64Decoder();
byte[] bytes1 = base64Decoder.decodeBuffer(encode);
FileOutputStream fileOutputStream = new FileOutputStream("D:\\222.jpg");
fileOutputStream.write(bytes1);
fileOutputStream.close();
以上是java端的代码,因为最近涉及到安卓端上传图片问题,顺便看了下安卓端。android studio的默认java库中是没有sun.misc.BASE64Encoder,需要自己去依赖。不过安卓也提供了android.util.Base64这个类,效果是一样的。不过用法是有差异的。
如下:
对同一字符串加密:
android.util.Base64


sun.misc.BASE64Encoder

android.util.Base64分别设置Base64.DEFAULT和Base64.NO_WRAP参数后出现
以下差异,多了“\n”
因此以后这方面可以留个心
尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。