2016-07-29 169 views
0

我正在使用JSONStore在我的項目中存儲一些數據,但我的問題是我想存儲用於解鎖數據的密鑰。如何在JSONStore中存儲加密密鑰/密碼

是否MobileFirst提供任何辦法

  • 安全存儲在客戶端或服務器端的關鍵。
  • 有沒有什麼辦法可以通過連接適配器從適配器獲取密鑰或解鎖 JSONStore。

回答

1

我相信你想加密JSONStore集合中的數據,同時你希望能夠解密集合而不需要用戶輸入密碼。

方法1:客戶端

如果要實現這一目標iOS中,你可以使用觸摸ID用於這一目的。你可以閱讀更多的https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/devref/t_setting_up_touch_id_jsonstore.html

對於Android沒有現成的集成,但凝視在Android棉花糖(6.0)有指紋掃描儀的API,你也可以使用。 https://developer.android.com/about/versions/marshmallow/android-6.0.html#fingerprint-authentication

基本上使用上面提到的方法,您正在創建一個隨機密碼並將其安全地存儲在設備中。然後,設備提示用戶進行身份驗證(指紋掃描器或PIN碼),然後如果成功,您將訪問該隨機密碼。

方法2:服務器端

在這種方法中,您將使用適配器哈希從客戶端發送一個令牌/串。對於這個工作,你需要使用的東西保持不變,即,設備ID WL.Device.getID()https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Device.html#getID

app.js

WL.Device.getID(function(response){ 
    var id = response.deviceID; 

    var req = WLResourceRequest('/adapters/Util/hash', WLResourceRequest.POST); 

    return req.sendFormParameters({ 
    pass: id 
    }); 
}).then(function(response){ 
    var passwordHash = response.responseJSON.hash; 


    // open JSONStore collection with the passwordHash 
}); 

在您的適配器可以散列密碼/設備ID然後將其返回到設備以打開JSONStore集合。您可以檢查以下內容後How can I hash a password in Java?,如果你想哈希密碼在你的Java適配器

這種做法是有點棘手,因爲你將需要以某種方式驗證,以確保你只打開/解密JSONStore爲合法用戶。