2017-07-27 32 views
0

我們正在創建一個應用程序來在離線/在線場景中共享內容。我們計劃使用Couchbase和一些可能簽署數據的庫。我們希望人們即使不上網也能夠使用我們的應用程序,並且如果可能的話,他們也可以在線使用它。我們需要我們的應用程序能夠簽署人們創建的每個內容。關於密鑰管理和用於簽署文檔的android ios庫的想法

我需要你的幫助,建議如何在應用程序和服務器上存儲密鑰,以及是否有以這種方式製作的東西。

此外,我們需要幫助找到一個庫,可以簽署所有數據以存儲在Android和iOS中的Couchbase lite中。我發現了openkeychain,但似乎並不能從那裏只取得簽署內容所需的庫。

我們非常感謝您的建議。

有一個大的擁抱,

卡洛斯。

回答

0

我曾經制作過一個類似這樣的應用程序(包括簽名和離線/在線部分)。所以我會給你我的兩分錢。

對於簽名,我使用了一個繪圖庫,因爲它很簡單,並且在繪圖結束時將其保存在輸出文件中。 (請記住在某處發送路徑並在發送圖片後,刪除該圖片,這樣不會佔用過多的用戶設備空間)。

對於離線/在線部分,您應該看到evernote job,因爲它是向API發送數據的好庫。然後創建該作業並嘗試發送(通常會發送一些json請求),並且如果用戶處於脫機狀態,則會進入RESCHEDULE部分,然後將其重新調度爲只要您想要的時間,然後在用戶上線時(與它的數據)將被髮送到API。它對RxJava和改進工作很好,這是一個很大的優勢(至少對我而言)。

對於存儲部分查找hawk's store,因爲它是一個偉大的鍵值存儲庫,非常容易使用和工作得很好。只要嘗試閱讀網頁,所有內容都直截了當地描述。

所有這些都是針對android部分的,至於iOS則需要另尋一個。

0

我假設問題是關於數字簽名,而不是手寫簽名。您可以使用PGP(如您對標籤所建議的那樣)。對於Android,有BouncyCastle,對於iOS,可以使用ObjectivePGP框架。這將包括簽名部分。

一種方法是在設備上生成密鑰並將公鑰發送到服務器,然後使用該密鑰在設備上簽名數據並在服務器上驗證(使用公鑰)。

相關問題