我在编写这段代码后没有得到任何结果。它只返回空白。
[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/