2016-07-29 151 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为合法用户。