首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用WL.EncryptedCache.open在iOS上加载加密的本地存储时出现延迟

使用WL.EncryptedCache.open在iOS上加载加密的本地存储时出现延迟
EN

Stack Overflow用户
提问于 2014-05-29 05:53:01
回答 1查看 171关注 0票数 0

我们正在使用WL.EncryptedCache.open打开本地存储。这有时需要4-8秒来获得加密密钥。请建议如何解决此性能问题?我们使用的是Worklight 6.0

EN

回答 1

Stack Overflow用户

发布于 2014-05-29 06:34:52

您可以通过覆盖安全随机调用WL.EncryptedCache.secureRandom = function(callback){callback(Math.random()+"")}在本地生成安全令牌。这样你就不需要点击服务器来获取它了。这将大大降低安全性,我不推荐它。除此之外,在速度更快的设备上运行应用程序,您也无能为力。生成安全密钥是一项代价高昂的操作。

或者,您可以将上面的Math.random替换为一个cordova插件exec调用,该调用使用SecRandomCopyBytes获取加密安全的随机字符串。一些示例代码:

代码语言:javascript
运行
复制
int bytes = 32;

uint8_t randBytes[bytes];

int rc = SecRandomCopyBytes(kSecRandomDefault, (size_t)bytes, randBytes);

if (rc != 0) {
    //handle failure
}

NSMutableString* hexEncoded  = [NSMutableString new];
for (int i = 0; i < bytes; i++) {
    [hexEncoded appendString:[NSString stringWithFormat:@"%02x", randBytes[i]]];
}

NSString* randomStr = [NSString stringWithFormat:@"%@", hexEncoded];

有一些入门模块解释了如何为iOS here编写cordova插件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23922508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档