2014-11-18 1 views
0

이 코드를 작성한 후에 결과가 나타나지 않습니다. 단지 비어있게됩니다.ARC4 iOS에서 javascript를 통한 암호화

[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); 

답변

1

있는 UIWebView로드 비동기 iOS 앱에서이 http://uttool.com/encryption/RC4/default.aspx을 구현하기 위해 노력 ..이 또는 다른 것? 제안하십시오에 구현 몇 가지 실수가입니다. loadHTMLString : baseURL :을 호출하면로드중인 페이지의 내용이 즉시 구체화되지 않습니다. webViewDisFinishLoad : 내의 JavaScript 코드를 웹보기의 델리게이트에서 평가해야합니다.

이 경우 JavaScriptCore를 직접 사용하는 것이 좋습니다. JSContext를 작성하고 JSContext에서 rc4.js의 내용을 평가하면 JSContext에서 모든 내용을 즉시 사용할 수 있습니다. 물론 iOS 7 이상을 타겟팅하는 경우에만 작동합니다.

그러나 암호화를해야하므로 CommonCrypto 프레임 워크를 사용하는 것이 좋습니다. this snippet을 기반으로 RC4를 지원하는 것으로 보입니다.

+0

AES를 사용하면 RC4가 안전하지 않은 것으로 간주되어 새로운 시스템에 사용해야합니다. – zaph