我正在使用JSONStore在我的項目中存儲一些數據,但我的問題是我想存儲用於解鎖數據的密鑰。如何在JSONStore中存儲加密密鑰/密碼
是否MobileFirst提供任何辦法
- 安全存儲在客戶端或服務器端的關鍵。
- 有沒有什麼辦法可以通過連接適配器從適配器獲取密鑰或解鎖 JSONStore。
我正在使用JSONStore在我的項目中存儲一些數據,但我的問題是我想存儲用於解鎖數據的密鑰。如何在JSONStore中存儲加密密鑰/密碼
是否MobileFirst提供任何辦法
我相信你想加密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爲合法用戶。