javascript - 在 iOS 中通过 javascript 进行 ARC4 加密

标签 javascript ios objective-c encryption javascriptcore

我在编写这段代码后没有得到任何结果。它只返回空白。

[self.webview loadHTMLString:@"<script src=\"http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/rc4.js\"></script>"
                baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];

NSString *function = [[NSString alloc] initWithFormat: @"CryptoJS.RC4.encrypt(%@, %@)",@"abhijit",@"TestKey"];
NSString *result = [self.webview stringByEvaluatingJavaScriptFromString:function];

NSLog(@"----%@",result);

这方面或其他方面的实现是否有错误?请提出建议..

尝试实现此 http://uttool.com/encryption/RC4/default.aspx在 iOS 应用程序中

最佳答案

UIWebView 异步加载。在调用 loadHTMLString:baseURL: 后,您正在加载的页面内容不会立即具体化。您需要评估 webViewDisFinishLoad: WebView 委托(delegate)中的 JavaScript 代码。

不过,在这种情况下,我建议直接使用 JavaScriptCore。只需创建一个 JSContext,评估其中的 rc4.js 内容,其中的所有内容将立即在 JSContext 中可用。当然,只有当你的目标是 iOS 7+ 时,thus 才有效。

然而,鉴于您需要进行加密,我建议(对此我再怎么强调也不为过)使用 CommonCrypto 框架。它似乎支持基于this snippet的RC4 .

关于javascript - 在 iOS 中通过 javascript 进行 ARC4 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26989798/

相关文章:

javascript - 构建我的 Electron 应用程序时出错

javascript - 基本的 jQuery 选择器问题

android - 无法为 ios 和 android 添加平台(错误 : ENOENT, 没有这样的文件或目录)

ios - objectForKey 在 Swift 中为 NSUserDefaults 返回 nil

objective-c - 有没有办法以编程方式加载 LaunchAgent plist?

objective-c - Windows 或 Linux 上的 Objective C

javascript - 简单的 Accordion 定位

Javascript - 删除也重新计算总计的表行

iphone - 将图像叠加在背景上

ios - 如何使 URL 加载请求超时?