我正在研究静态应用程序,这意味着没有网络服务。我的应用程序包含激活页面,因此我们需要在该文本字段中输入文本进行验证。
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。
但是,您仍然需要安全地存储加密密钥。为此,我建议将它们分开并对它们进行一些操作以进行组合。
- 从 github 下载 AES 加密文件。从这里下载 将这些
下载的文件添加到您的项目中后,现在比较,
if ([[AESCrypt encrypt:textfield.text password:[[NSBundle mainBundle] bundleIdentifier]] isEqualToString:ACTIVATION_STRING])
在这里,ACTIVATION_STRING = hYjhuOO+GYTUBS05== ....此加密字符串需要使用以下语法创建,并确保在生成加密字符串后从代码中删除以下语法,
NSString *encryptedData = [AESCrypt encrypt:@"AKS_BI" password: [[NSBundle mainBundle] bundleIdentifier]];
就是这样。很简单。