java Base64介绍

来源:互联网 发布:mysql error 1007 编辑:程序博客网 时间:2024/06/07 01:35

Base64好多人以为是和什么md5一样,也算是加密算法,其实Base64只是帮我们转码而已,并没有涉及到加密这块,但是网上很多人把它也归类为加密的一种,做android的可能都做过图片上传这块,如果后台要求你传一个string给它,可能我们以为图片应该是file类型,怎么给string呢?其实这个时候就可以使用Base64,把一个对象转成string类型,其实就是将二进制转换成string类型,因为一个对象在内存中以二进制的形式存在,所以都是无数个0和1构成的,我们通过Base64把它转成string的话,它的长度就会变短,这样也提供了传递的速度,现在写一个android简单的项目,演示下Base64怎么用?

public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ImageView iv = (ImageView) findViewById(R.id.iv);//1.得到bitmapBitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);//2.bitmap-->byte[]ByteArrayOutputStream out = new ByteArrayOutputStream();bitmap.compress(CompressFormat.PNG, 100, out);byte[] bitmapByteArr = out.toByteArray();//3.使用base64 byte[]--String--->上传到服务器String bitmapBase64String = Base64.encodeToString(bitmapByteArr, Base64.DEFAULT);//key-value jsonString//4.String-->byte[]byte[] bitmapByteArr2 = Base64.decode(bitmapBase64String, Base64.DEFAULT);//5.byte[]-->Bitmap -->完成图片的上传Bitmap bitmapPassed = BitmapFactory.decodeByteArray(bitmapByteArr2, 0, bitmapByteArr2.length);//6.设置图片到imageViewiv.setImageBitmap(bitmapPassed);}}

还有我们在传输视频或者音频的时候也可以使用Base64转码上传到服务器,

0 0