鍍金池/ 問答/Java  Linux/ 如何加密API保證只有自己的手機app才能調(diào)用?

如何加密API保證只有自己的手機app才能調(diào)用?

公司不想公開API。根據(jù)Log日志顯示和其他跡象,總是會有異常的調(diào)用,比如短信轟炸機試圖調(diào)用注冊接口發(fā)送注冊短信、大量的異地手機短時間內(nèi)批量注冊用戶等,雖然各自可以有不同的應(yīng)對方式,但加密Api才是一勞永逸的。

回答
編輯回答
葬憶

如果是完全私有的接口,其實還有這樣一些可選的策略
對于調(diào)用路徑都是加密的,比如你只提供一個公開的路徑,接受通過某種非對稱加密的字符串密文作為調(diào)用,原始路徑(非加密路徑 只有你的app和服務(wù)器端知道——其實這里所謂的調(diào)用路徑不一定是路徑表示,只是為了方便調(diào)試功能),這樣在這個統(tǒng)一接口中處理判斷是否進行正確調(diào)用(后臺實際處理),對于不規(guī)范的(通過一些標識、校驗等等),可以方便的過濾掉。這樣的一層其實相當于在服務(wù)器端和app端(調(diào)用接口時)都再添加了一層包裝。

而那些公開api只所以用token來判斷是否有權(quán)限,是因為他們必須要公開調(diào)用路徑,而你并沒有這樣的要求,所以可以采用不同的策略了。

2017年7月14日 21:23
編輯回答
安于心

對傳輸?shù)臄?shù)據(jù)進行非對稱加密算法(RSA)。
app請求后端時,對post提交的數(shù)據(jù)采用json形式,對這個json字符串進行加密。
后端接收時,用密鑰進行解密。
后臺給前臺返回數(shù)據(jù)亦是如此。
網(wǎng)上這方面文章很多,關(guān)鍵詞如“接口加密”

當然還需要做一些,鑒權(quán),時間檢驗等

2017年5月18日 06:19
編輯回答
墨染殤

目前我自己的加密方式是設(shè)定一個token,服務(wù)器和手機端分別保存,,然后手機端hash=md5(token.time)之后把hash和time上傳到服務(wù)器進行比對。
但是這樣測試接口時比較麻煩,不知還有沒有更好的方式?
另外我看關(guān)于openAPI的文章,好像都直接傳token,連加密都沒有,不知是不是安全。

2017年9月3日 03:53