如何在 JSONStore 中存储加密 key/password
How to store encryption key/password in JSONStore
我正在使用 JSONStore 在我的项目中存储一些数据,但我的问题是我想存储一个用于解锁数据的密钥。
MobileFirst 是否提供任何方式来
- 在客户端或服务器端安全地存储密钥。
- 有什么方法可以从适配器获取密钥或解锁
通过连接到适配器的 JSONStore。
我相信您想加密 JSONStore 集合中的数据,同时您希望能够在不需要用户输入密码的情况下解密该集合。
方法一:客户端
如果您想在 iOS 中实现这一点,您可以使用 Touch 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 Marshmallow (6.0) 中有一个 API 指纹扫描仪,您也可以使用它. https://developer.android.com/about/versions/marshmallow/android-6.0.html#fingerprint-authentication
基本上,使用上述方法,您将创建一个随机密码并将其安全地存储在设备中。然后设备会提示用户进行身份验证(指纹扫描仪或 PIN 码),如果成功,您将可以访问该随机密码。
方法二:服务器端
在这种方法中,您将使用适配器来散列从客户端发送的 token/string。为此,您需要使用一些保持不变的东西,即设备 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
});
在您的适配器中,您可以散列您的 password/device ID,然后 return 它到设备以打开 JSONStore 集合。如果您想在 Java 适配器
中散列密码,您可以检查以下 post How can I hash a password in Java?
这种方法有点棘手,因为您需要以某种方式进行身份验证以确保您只是合法用户的 opening/decrypting JSONStore。
我正在使用 JSONStore 在我的项目中存储一些数据,但我的问题是我想存储一个用于解锁数据的密钥。
MobileFirst 是否提供任何方式来
- 在客户端或服务器端安全地存储密钥。
- 有什么方法可以从适配器获取密钥或解锁 通过连接到适配器的 JSONStore。
我相信您想加密 JSONStore 集合中的数据,同时您希望能够在不需要用户输入密码的情况下解密该集合。
方法一:客户端
如果您想在 iOS 中实现这一点,您可以使用 Touch 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 Marshmallow (6.0) 中有一个 API 指纹扫描仪,您也可以使用它. https://developer.android.com/about/versions/marshmallow/android-6.0.html#fingerprint-authentication
基本上,使用上述方法,您将创建一个随机密码并将其安全地存储在设备中。然后设备会提示用户进行身份验证(指纹扫描仪或 PIN 码),如果成功,您将可以访问该随机密码。
方法二:服务器端
在这种方法中,您将使用适配器来散列从客户端发送的 token/string。为此,您需要使用一些保持不变的东西,即设备 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
});
在您的适配器中,您可以散列您的 password/device ID,然后 return 它到设备以打开 JSONStore 集合。如果您想在 Java 适配器
中散列密码,您可以检查以下 post How can I hash a password in Java?这种方法有点棘手,因为您需要以某种方式进行身份验证以确保您只是合法用户的 opening/decrypting JSONStore。