不能在Appcellerator Titanium项目中使用sjcl

时间:2013-03-20 09:16:34

标签: javascript encryption titanium-mobile sjcl

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

代码可能正常运行。但是,第一个算法尝试使用PBKDF2函数从密码创建密钥。此功能故意加密密码,因为密码通常不包含足够的熵以便安全地用于加密。如果(调试)框架花费大量时间来执行底层哈希函数,那么您的应用程序可能会挂起(检查您的CPU使用情况)。

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