最近公布一個(gè)非常豐富的開(kāi)源庫(kù),如果你需要相冊(cè)、錄制、錄音等操作,那么這個(gè)也許對(duì)你有一定的幫助:
http://www.itdecent.cn/p/8a0accffd0e1
照常例打出我搜到的相關(guān)文章
http://blog.csdn.net/ouyang_peng/article/details/50983574
https://www.zhihu.com/question/20874499
在講接口加密之前,先了解AES與RSA的區(qū)別。
(具體算法咱們就不討論了,如果一定要討論:https://www.cnblogs.com/awsqsh/articles/4349114.html)
AES:對(duì)稱(chēng)加密。加密速度快,相比RSA的安全性就沒(méi)那么高。
RSA:非對(duì)稱(chēng)加密。算法的密鑰很長(zhǎng),具有較好的安全性,但加密的計(jì)算量很大,加密速度較慢限制了其應(yīng)用范圍。
1.AES與RSA
對(duì)稱(chēng)加密AES:

如圖所說(shuō),服務(wù)器(男方)和客戶端(女方)都彼此知道該鑰匙是0101000101,他們通過(guò)彼此的鑰匙來(lái)進(jìn)行加密解密。
非對(duì)稱(chēng)加密RSA:
如果上面對(duì)稱(chēng)加密AES的一個(gè)鑰匙被偷走的話,那么就很容易破解了。
那么非對(duì)稱(chēng)加密就是很好的解決了這個(gè)方法。

上面的圖片可以首先看到鑰匙已經(jīng)不再是一個(gè)了,而是公鑰跟私鑰一起組合的鑰匙,公鑰是可以公開(kāi)出來(lái)的。首先加密是通過(guò)服務(wù)器(男方)加密的,然后客戶端(女方)通過(guò)該公鑰和自己客戶端私下的私鑰進(jìn)行解密。
也許你們會(huì)認(rèn)為rsa不就多了個(gè)公鑰私鑰的區(qū)別么,其一來(lái)說(shuō)單純一個(gè)鑰匙同時(shí)在服務(wù)端和客戶端容易泄漏出去,其二來(lái)說(shuō)用公鑰和明文推導(dǎo)密文很容易,但根據(jù)公鑰、明文和密文推導(dǎo)私鑰極其難
2.AES與RSA如何配合加密
從上面比較得知,由于RSA加解密速度慢,不適合大量數(shù)據(jù)文件加密。AES加密速度很快。
這樣在傳送機(jī)密信息的雙方
1:使用AES對(duì)傳輸數(shù)據(jù)加密
2:使用RSA不對(duì)稱(chēng)密碼體制來(lái)傳送AES的密鑰
這樣就可以綜合發(fā)揮AES和RSA的優(yōu)點(diǎn)同時(shí)避免它們?nèi)秉c(diǎn)來(lái)實(shí)現(xiàn)一種新的數(shù)據(jù)加密方案。加解密實(shí)現(xiàn)流程如圖(同樣是網(wǎng)上找的)。

那么流程我們明白了,開(kāi)始深入了解代碼。假設(shè)一個(gè)場(chǎng)景,app客戶端向服務(wù)端傳輸一個(gè)數(shù)據(jù)

這個(gè)流程我分開(kāi)5個(gè)步驟,讓我們一個(gè)個(gè)步驟講:
第一步解析:handleRSA
%……&¥%……&¥#……%#@……留待后面編輯。