我试图加密一些文本sjcl(斯坦福Javascript加密库)在我的钛(目标:iOS和Android)项目。我使用的是最简单的方法,没有其他选项:
sjcl.encrypt("mypassword", "mytext");
应用程序只是挂在这条线上,我没有得到任何错误或任何有用的信息。我错过了什么?
谢谢!
代码可能运行良好。但是,第一种算法尝试使用PBKDF2函数从密码创建密钥。由于密码通常不包含足够的熵,因此无法安全用于加密,因此该函数故意缓慢地加强密码。如果(调试)框架花了很多时间来执行底层哈希函数,那么你的应用程序可能会挂起(检查你的CPU使用情况)。
解决方案是要么降低PBKDF2作为输入的迭代次数,要么使用Java PBKDF2。两者都可能需要较低级别的SJCL访问权限。最后,在Java平台上选择用于加密的JavaScript库将极大地降低性能。为此,您可能需要考虑放弃SJCL。