1

我正在尝试在我的 Titanium(目标:iOS 和 Android)项目中使用 sjcl(Stanford Javascript Crypto Library)加密一些文本。我正在使用最简单的方法,没有其他选择:

sjcl.encrypt("mypassword", "mytext");

该应用程序只是挂在这条线上,我没有收到任何错误或任何有用的信息。我错过了什么?

谢谢!

4

1 回答 1

0

代码可能运行良好。然而,第一个算法尝试使用 PBKDF2 函数从密码创建密钥。由于密码通常不包含足够的熵以安全地用于加密,因此此功能故意降低密码强度。如果(调试)框架需要大量时间来执行底层哈希函数,那么您的应用程序可能会出现挂起(检查您的 CPU 使用率)。

解决方案是降低 PBKDF2 作为输入的迭代次数,或者使用 Java PBKDF2。两者都可能需要对 SJCL 的较低级别访问。最后,在 Java 平台上选择用于加密的 JavaScript 库会极大地降低性能。为此,您可能需要考虑删除 SJCL。

于 2013-03-20T18:24:07.353 回答