Android編碼解碼及其原理

2021-07-05 22:47:25 字數 2345 閱讀 6524

概念:編碼解碼就是使用特定的演算法,將資料進行處理,形成資料的另外一種表現形式,編碼後的資料可以使用解碼演算法還原出原始資料。

//將位元組陣列編碼,返回為string

base64.encodetostring(byte bs,int flag);

//將位元組陣列編碼,返回位元組陣列

base64.encode(byte bs,int flag);

//將位元組陣列按指定位置部分編碼,返回字串

base64.encodetostring(byte bs,int offset,int lenth);

//將位元組陣列按指定位置部分編碼,返回位元組陣列

base64.encode(byte bs,int offset,int lenth);

//將編碼後的字串解碼返回位元組陣列

base64.decode(string str,int flag);

//將編碼後的位元組陣列解碼返回位元組陣列

base64.decode(byte,int flag);

//將編碼後的位元組陣列按指定位置部分解碼,返回位元組陣列

base64.decode(byte bs,int offset,int len);

base64.crlf 這個引數意思是win風格的換行符,意思就是使用cr lf這一對作為一行的結尾而不是unix風格的lf

base64.default 這個引數是預設,使用預設的方法來加密

base64.no_padding 這個引數是略去加密字串最後的」=」

base64.no_wrap 這個引數意思是略去所有的換行符(設定後crlf就沒用了)

base64.url_safe 這個引數意思是加密時不使用對url和檔名有特殊意義的字元來作為加密字元,具體就是以-和_取代+和/

//習慣上使用base64.no_wrap,使用什麼方式編碼就需要使用什麼方式解碼。

get0a

aascii

4865

97二進位制表示

00110000

01000001

01100001

get123

4開始001100

000100

000101

100001

轉化00001100

00000100

00000101

00100001

轉為10進製124

533base64字元me

fhbyte110

20二進位制表示

00000001

00001010

00010100

get123

4開始000000

010000

101000

010100

轉化00000000

00010000

00101000

00010100

轉為10進製016

4020

base64字元aq

ouhex就是16進製制,本質上是將位元組陣列轉化為16進製制,然後用字串的形式表現出來,我們知道16進製制的取值範圍就是在0-f之間,這樣就可以將無法顯示的位元組陣列資料顯示出來。

原理方面比起base64就簡單很多了,乙個8bit的資料,也就是(***x ***x),每4個bit可以轉化為乙個16進製表示,也就是8個bit會轉化為(00-ff)之間的16進製制數字。

/**

* 位元組陣列轉換為字串

* 乙個位元組形成兩個字元,是原來資料長度的兩倍

**@param data

*@return

*/public

static string tohex(byte data) else

if (l > 9) else

}ret = sb.tostring();

}return ret;

}

/**

* 將編碼字串解碼為位元組陣列

**@param data

*@return

*/public

static

byte fromhex(string data) else

if(ch >='a'&&ch<='f')else

if(ch>'0'&&ch<='9')

if(cl>='a')else

if(cl >='a')else

if(cl>'0')

v = ((ih&0x0f)<<4)|(il&0x0f);

ret[j] = (byte)v;}}

}return ret;

}

Base64編碼解碼原理

一.base64編碼由來 為什麼會有base64編碼呢?因為有些網路傳送渠道並不支援所有的位元組,例如傳統的郵件只支援可見字元的傳送,像ascii碼的控制字元就不能通過郵件傳送。這樣用途就受到了很大的限制,比如二進位製流的每個位元組不可能全部是可見字元,所以就傳送不了。最好的方法就是在不改變傳統協議...

指令的編碼與解碼原理

指令集是處理器體系架構的重要組成部分。指令集有兩個發展方面,包含以x86為代表的cisc 複雜指令集 和以arm mips為代表的risc 精簡指令集 cisc的目標是盡可能將經常使用的功能用最少甚至一條指令來實現,因此該指令相應的執行電路往往是複雜的,其側重的是硬體功能的實現 risc則相反,其是...

Base64編碼解碼原理詳解

1.base64字元的組成部分 base64所用字元 0,1,2 9 a,b,c,d z a,b,c,d z 對應ascii 48,49 58,65,66 90,97,98 122,43,47 2.10個數字,26個大寫字母,26個小寫字母,1個 乙個 剛好64個字元 3.base64是將每3個字元...