Android 中Base64编码解码

首先要说明的是Base64是编码解码,而不是加密解密,因为加密解密你是需要密钥的,编码是大家都知道怎么解码的,不需要密钥的。

Base64,将任意的字节数组,通过算法,生成只有(英文大小写(52个字母),数字(10个)+/(2个))内容标识的字符串数据;
相当于将任何的内容转换为可见字符串的表示。

Base64, 将原始数据按照3个字节一个分组,按位进行分割为每6位一个字节的形式,进行转换,形成新的4个字节,这4个字节的再通过Base64的编码表进行映射。

6位能够表示的字符数就是64所以称为Base64,其实就是字节总长度增加了3分之一。

Android 中Base64编码解码_第1张图片


编码Base64.encodeToString("你好".getBytes(), Base64.NO_WRAP);//NO_WRAP不换行


解码Base64.decode(fakeString.getBytes(), Base64.NO_WRAP);//解码时注意事项,第二个参数的取值,应该和编码时一致;


实例具体的代码:


package tech.androidstudio.encodecryp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;

import java.util.Arrays;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        base64Test();
    }

    public void base64Test(){
        /**
         * 最好 使用 encodeToString,不然还要自己转换。
         byte[] encode = Base64.encode("你好".getBytes(), Base64.NO_WRAP);
         String encodeString = new String(encode);
         Log.d("kodulf","你好的Base64 的编码是"+encodeString);
         */

        //编码
        String encodeToString = Base64.encodeToString("你好".getBytes(), Base64.NO_WRAP);//NO_WRAP 不换行
        Log.d("kodulf","你好的Base64 的编码是"+encodeToString);

        //解码
        //模拟解码的数据
        String fakeString = Base64.encodeToString("Kodulf 是一个好人".getBytes(), Base64.NO_WRAP);
        Log.d("kodulf","模拟解码数据得到的编码:"+fakeString);

        // 解码时注意事项,第二个参数的取值,应该和编码时一致;
        byte[] decodeStringbytes = Base64.decode(fakeString.getBytes(), Base64.NO_WRAP);
        String decodeString = new String(decodeStringbytes);
        Log.d("kodulf","模拟解码数据得到的解码:"+decodeString);

    }
}



03-22 02:48:29.254 511-511/? D/kodulf: 你好的Base64 的编码是5L2g5aW9
03-22 02:48:29.254 511-511/? D/kodulf: 模拟解码数据得到的编码:S29kdWxmIOaYr+S4gOS4quWlveS6ug==
03-22 02:48:29.254 511-511/? D/kodulf: 模拟解码数据得到的解码:Kodulf 是一个好人




你可能感兴趣的:(3,网络与数据库技术)