Android資料傳輸中的引數加密

2021-07-01 18:51:58 字數 1632 閱讀 9301

1)、http請求中,最常用的方法有兩種:get和post;一般post請求適合做提交,而get請求適合做請求資料

2)、資料的加密,大概有三種常用的:aes,des,base64

這裡使用的aes加密,然後再將字串使用base64編碼,其中有增加向量,是為了提高加密破解難度,一段引數加密的方法如下:

/**

* 對post請求資料進行加密

* @param params

* @return

* @throws throwable

*/public static byte encryptparams(hashmapparams) throws throwable

stringbuilder stringbuilder = new stringbuilder();

iterator> iterator = params.entryset().iterator();

while (iterator.hasnext())

}byte buff = stringbuilder.tostring().getbytes("utf-8");

byte iv = new byte[16];

random random = new random();

random.nextbytes(iv);

byte data = aes.encrypt(buff,password,iv);

bytearrayoutputstream baos = new bytearrayoutputstream();

baos.write(iv,0,iv.length);

baos.write(data,0,data.length);

byte out = baos.tobytearray();

try catch (throwable e)

return out;

}

在使用base64的過程中,遇到一些問題,如下:

1)請求的字串被截斷,抓取鏈結之後,得到一段空格的字串。經過分析,其實這裡是換行。。。。。

解決的方法是,在請求的時候,將輸出的字串,做如下處理:

android.util.base64.encodetostring(input, base64.default)

換成android.util.base64.encodetostring(input, base64.no_wrap);

2)除了上面的是因為換行之外,其實也真的存在空格的情況,這個時候,可以使用替換,如下:

// 加密:

byte bodybytes = requestmanager.encryptparams(hashmap);

// 使用base64encode做最後的加密

string result = new base64encoder().encode(bodybytes);

string ans_url = headurl + result.replaceall("\n","");

base64encode編碼會在76位之後,將字串截斷。在含有中文字串的情況下,會出現加號被替換成空格的情況。

C SFTP資料傳輸

我們有些客戶公司的資料比較重要,為了安全集團公司內部都使用的是區域網,但是有時候又不得不予外界網際網路做資料互動,所以有些不重要的系統是放在外界網際網路的,這樣以來內部系統和外部系統的資料互動就成為了問題,這樣以來就使用到了sftp伺服器來作為資料傳輸的中介。下面不說了,直接上c 此處使用了第三方動...

資料傳輸方式

資料傳輸方式 1 並行傳輸與序列傳輸 並行傳輸指的是資料以成組的方式,在多條並行通道上同時進行傳輸。常用的就是將構成一 個字元 的幾位二進位製碼,分別在幾個並行通道上進行傳輸。例如,採用8單位 的字 符 可以用8個通道並行傳輸。一次傳送乙個字元,因此收 發雙方不存在字元的同步問題,不需要另加 起 止...

flex wcf 資料傳輸

最近跟哲子做個專案,本來可以用asp.net輕鬆搞定,但是鑑於大家都比較想試用下學習已久的技術,所以便出現了flex與wcf entity這樣得前後臺組合。專案開始之初,著實為兩者之間的互動頭疼一番,在經過大量資料得獲取後,終於解決,以下寫出簡要的注意事項,由於wcf 我還是個徹頭徹尾的門外漢,資料...