Android資料加密之Base64編碼演算法

2021-09-08 19:24:45 字數 1648 閱讀 5326

前面學習總結了平時開發中遇見的各種資料加密方式,最終都會對加密後的二進位制資料進行base64編碼,起到一種二次加密的效果,其實呢base64從嚴格意義上來說的話不是一種加密演算法,而是一種編碼演算法,為何要使用base64編碼呢?它解決了什麼問題?這也是本文**的東西?

其他幾種加密方式:

base64是網路上最常見的用於傳輸8bit位元組**的編碼方式之一,base64並不是安全領域的加密演算法,其實base64只能算是乙個編碼演算法,對資料內容進行編碼來適合傳輸。標準base64編碼解碼無需額外資訊即完全可逆,即使你自己自定義字符集設計一種類base64的編碼方式用於資料加密,在多數場景下也較容易破解。base64編碼本質上是一種將二進位制資料轉成文字資料的方案。對於非二進位制資料,是先將其轉換成二進位制形式,然後每連續6位元(2的6次方=64)計算其十進位制值,根據該值在a--z,a--z,0--9,+,/這64個字元中找到對應的字元,最終得到乙個文字字串。基本規則如下幾點:

下圖為base64編碼表

在計算機中任何資料都是按ascii碼儲存的,而ascii碼的128~255之間的值是不可見字元。而在網路上交換資料時,比如說從a地傳到b地,往往要經過多個路由裝置,由於不同的裝置對字元的處理方式有一些不同,這樣那些不可見字元就有可能被處理錯誤,這是不利於傳輸的。所以就先把資料先做乙個base64編碼,統統變成可見字元,這樣出錯的可能性就大降低了。

1.)字串進行base64編碼

string encodedstring = base64.encodetostring("whoislcj".getbytes(), base64.default);

log.e("base64", "base64---->" + encodedstring);

2.)字串進行base64解碼

string decodedstring =new

string(base64.decode(encodedstring,base64.default));

log.e("base64", "base64---->" + decodedstring);

3.)對檔案進行base64編碼

file file = new file("/storage/emulated/0/pimsecure_debug.txt");

fileinputstream inputfile = null

;try

catch

(exception e)

4.)對檔案進行base64解碼

file desfile = new file("/storage/emulated/0/pimsecure_debug_1.txt");

fileoutputstream fos = null

;try

catch

(exception e)

5.)針對base64.default引數說明

無論是編碼還是解碼都會有乙個引數flags,android提供了以下幾種

base64編碼看似簡單,但是其在實際開發中使用相當廣泛。目前專案中只是用到這麼多,以後用到更複雜的情況的時候再做補充。

Android資料加密之MD5加密

專案中無論是密碼的儲存或者說判斷檔案是否是同一檔案,都會用到md5演算法,今天來總結一下md5加密演算法。md5英文全稱 message digest algorithm 5 翻譯過來是 訊息摘要演算法5 由md2 md3 md4演變過來的,是一種單向加密演算法,是不可逆的一種的加密方式。其他幾種加...

Android資料加密之MD5加密

專案中無論是密碼的儲存或者說判斷檔案是否是同一檔案,都會用到md5演算法,今天來總結一下md5加密演算法。md5英文全稱 message digest algorithm 5 翻譯過來是 訊息摘要演算法5 由md2 md3 md4演變過來的,是一種單向加密演算法,是不可逆的一種的加密方式。其他幾種加...

Android資料加密之MD5加密

1.計算字串md5值 public static string md5 string string messagedigest md5 null try result temp return result catch nosuchalgorithmexception e return 2.計算檔案的...