Base64雜湊雜湊函式Flags

2021-09-25 12:38:59 字數 1368 閱讀 6036

android端在編碼過程中尤其涉及到加解密我們通常將加解密後的byte位元組陣列轉換為string,通常做法是使用android 提供的base64(android.util)的encodetostring函式:

那麼這其中的flags到底是什麼意思?作用是什麼呢?

通過原始碼可見flags取值範圍如下:

/**

*編碼後用cr lf這一對作為一行末尾的換行,而不是unix風格的lf換行

**/public static final int crlf = 4;

/** *此flag下編碼完成的string中會包含換行符\n,+號,末尾以「=」結束

**/

public static final int default = 0;

/** *flag to pass to to indicate that it

* itself is closed.

**/

public static final int no_close = 16;

/** *此flag下最終的編碼字串會包含換行符\n,但是末尾去掉了「=」

**/

public static final int no_padding = 1;

/** *此flag下最終編碼字串不包含換行符\n,且字串全在一行,設定此flag後crlf flag無效

**/

public static final int no_wrap = 2;

/** *編碼後,用-代替+,用_代替/,避免請求是url編碼造成的傳輸問題,包含換行符\n

**/

public static final int url_safe = 8;

ps:可以結合使用滿足我們不同需求:

base64.encodetostring(encryptdata,base64.default|base64.no_wrap|base64.url_safe);
小結用flag default編碼後,字串中帶有+號和\n換行符,發起網路請求時,當以base64字串作為引數值傳遞時,url為了傳輸安全會把+號全部變成空格,在接收端就會產生各種問題,且前端用的部分的base64解碼庫不支援\n,當字串中含有\n時無法解碼還原為。所以base64編碼時建議使用no_wrap | url_safe,這樣可以避免較多問題。

逆向開發 2 雜湊加密 base64加密

雜湊 雜湊 函式md5 sha1 256 512 hmac hash的特點 1.演算法是公開的 2.對相同資料運算,得到的結果是一樣的 3.對不同資料運算,如md5得到的結果是128位,32個字元的十六進製制表示,沒法逆運算 md5加密的特點 不可逆運算 對不同的資料加密的結果是定長的32位字元 不...

base64編碼 動畫演示 Base 64 編碼

base64 是一種十分流行的編碼方式,僅僅使用 64 個字元加等號 就可以以文字的形式表示所有的二進位制資料了,因為它能夠把二進位制格式通過編碼轉換成可見字元,所有我們就可以通過的把二進位制格式比如,檔案等通過 base64 編碼然後通過文字的形式共享出去,是不是很神奇呀。把輸入的資料轉換成 二進...

C 處理base64 以及base64的原理分析

base64的原理,base64的碼表只有64個字元,如果要表達64個字元的話,使用6的bit即可完全表示 2的6次方為64 因為base64的編碼只有6個bit即可表示,而正常的字元是使用8個bit表示,8和6的最小公倍數是24,所以4個base64字元可以表示3個標準的ascll字元 publi...