如何在本地加密 ios 中的 NSString



我正在研究静态应用程序,这意味着没有网络服务。我的应用程序包含激活页面,因此我们需要在该文本字段中输入文本进行验证。

if([textfield.text isEqualToString:@"AKS_BI"]) {
     //loading home screen
 } else {
//show alert
 }

对于这个,我想加密"AKS_BI",以便在逆向工程或 Mat 测试时隐藏字符串。

你能帮我吗?

要加密:

//for best practise encrypting string length must be >=8
NSString *yourString=@"abcdefghij";
NSString *YourPasswordString = @"123456";//i've took static but you can set it dynamically
NSString *encryptPassword;
//Encrypt    
NSData *data = [YourPasswordString dataUsingEncoding: NSASCIIStringEncoding];
NSData *encryptedData = [data AESEncryptWithPassphrase:yourString];
//Encode Base 64    
[Base64 initialize];
encryptPassword = [Base64 encode:encryptedData];

有关更多详细信息,您可以在此处查看

希望这有帮助。

您可以使用

此库 https://github.com/RNCryptor/RNCryptor。

但是,您仍然需要安全地存储加密密钥。为此,我建议将它们分开并对它们进行一些操作以进行组合。

  1. 从 github 下载 AES 加密文件。从这里下载
  2. 将这些
  3. 下载的文件添加到您的项目中后,现在比较,

           if ([[AESCrypt encrypt:textfield.text password:[[NSBundle mainBundle] bundleIdentifier]] isEqualToString:ACTIVATION_STRING]) 
    
  4. 在这里,ACTIVATION_STRING = hYjhuOO+GYTUBS05== ....此加密字符串需要使用以下语法创建,并确保在生成加密字符串后从代码中删除以下语法,

       NSString *encryptedData = [AESCrypt encrypt:@"AKS_BI" password: [[NSBundle mainBundle] bundleIdentifier]];
    

就是这样。很简单。

最新更新