iOS常用的加密方式
MD5 iOS代码加密
创建MD5类,代码如下
#import <Foundation/Foundation.h>
@interface CJMD5 : NSObject
+(NSString *)md5HexDigest:(NSString *)input;
@end
#import "CJMD5.h"
#import <CommonCrypto/CommonDigest.h>
@implementation CJMD5
+(NSString *)md5HexDigest:(NSString *)input{
const char* str = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
[ret appendFormat:@"%02X",result];
}
return ret;
}
@end
MD5是不可逆的只有加密没有解密,iOS代码加密使用方式如下
NSString *userName = @"cerastes";
NSString *password = @"hello Word";
// MD5加密
NSString *md5 = [CJMD5 md5HexDigest:password];
NSLog(@"%@",md5);
AES加密iOS代码加密使用方法
// AES加密
NSString *encryptedData = [AESCrypt encrypt:userName password:password];//加密
NSString *message = [AESCrypt decrypt:encryptedData password:password]; //解密
NSLog(@"加密结果 = %@",encryptedData);
NSLog(@"解密结果 = %@",message);
BASE64加密iOS代码加密添加如下方法
.h
+ (NSString*)encodeBase64String:(NSString *)input;
+ (NSString*)decodeBase64String:(NSString *)input;
+ (NSString*)encodeBase64Data:(NSData *)data;
+ (NSString*)decodeBase64Data:(NSData *)data;
.m
+ (NSString*)encodeBase64String:(NSString * )input {
NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data = [GTMBase64 encodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return base64String;
}
+ (NSString*)decodeBase64String:(NSString * )input {
NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
data = [GTMBase64 decodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return base64String;
}
+ (NSString*)encodeBase64Data:(NSData *)data {
data = [GTMBase64 encodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return base64String;
}
+ (NSString*)decodeBase64Data:(NSData *)data {
data = [GTMBase64 decodeData:data];
NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return base64String;
}
BASE64加密iOS代码加密使用方法
// BASE64加密
NSString *baseEncodeString = [GTMBase64 encodeBase64String:password];
NSString *baseDecodeString = [GTMBase64 decodeBase64String:baseEncodeString];
NSLog(@"baseEncodeString = %@",baseEncodeString);
NSLog(@"baseDecodeString = %@",baseDecodeString);
除了以上的三种算法的iOS代码加密之外,iOS应用代码加密也是非常重要的,这里就不贴代码了,主要的iOS代码加密方式如下,
1)本地数据加密
对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息。
2)URL编码加密
对程序中出现的URL进行编码加密,防止URL被静态分析
3)网络传输数据加密
对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取
4)方法体,方法名高级混淆
对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码
5)程序结构混排加密
对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低
最新文章
- Maven学习笔记
- Python 修改电脑DNS
- java获取注册ip
- java static静态方法的并发性
- C#List的排序和简单去重总结
- 快速与MySQL交互,使用XMAPP打开MySQL数据库,并用shell进行与MySQL交互<;Window 10>;
- Creating Icon Overlay Handlers / 创建图标标记 Handlers (翻译自MSDN) / VC++, Windows, DLL, ATL, COM
- struct 理解 (需要经常理解)
- 获取或设置checkbox radio select的值
- JSP include HTML出现乱码
- js 中对象属性特性的描述
- javascript中with语句应用
- linux sendEmail工具的安装使用
- Android studio 断点技巧
- python笔记九(迭代)
- GIT初始学习记录
- eclipse中的javaEE插件
- LINUX服务器搭建和常用配置介绍
- Intellij IDEA中maven更新不下来pom中的jar包,reimport失效
- 基于tcp的下载文件,以及struct模块的应用。
热门文章
- Teleportation(tel)
- Codeforces Round #316 (Div. 2) C 思路/模拟
- 【12】vue-router 之路由重定向
- 洛谷 [P2051] 中国象棋
- zoj 3471 Most Powerful (有向图)最大生成树 状压dp
- linux库文件的制作
- Day 29 process&;thread_1
- interview ms1 robert move **
- Android 读取手机联系人、拨号、发送短信及长按菜单的操作
- HDU 4343 Interval query(贪心 + 倍增)