iOS代码加密常用加密方式

iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文

MD5 iOS代码加密:

1.
MD5 iOS代码加密
创建MD5类,代码如下:

#import <Foundation/Foundation.h>

#import <CommonCrypto/CommonDigest.h>

@interface MD5String : NSObject



+(NSString *)MD5:(NSString *)input;



@end

    2.
#import "MD5String.h"



@implementation MD5String



+(NSString *)MD5:(NSString *)input

{

    const char *cStr = [input UTF8String];

    unsigned char digest[CC_MD5_DIGEST_LENGTH];

    CC_MD5( cStr, strlen(cStr), digest ); // This is the md5 call

    

    NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];

    

    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)

    {

        [output appendFormat:@"%02x", digest[i]];

    }

    

    return  output;

}



@end

    3.MD5是不可逆的只有加密没有解密,iOS代码加密使用方式如下
:


NSMutableString *string1 = [[NSMutableString alloc] initWithString:_pswTextF.text];

    NSString *pwdMD5 = [MD5String MD5:string1];

    NSString *newPwd = [pwdMD5 stringByReplacingOccurrencesOfString:@"d" withString:@“h”];//将加密的密码再次替换可以增加数据安全程度



AES加密iOS代码加密:

    
AES加密iOS代码加密使用方法
//  AES加密
   

NSString *encryptedData = [AESCrypt encrypt:userName password:password];//加密
    NSString *message = [AESCrypt decrypt:encryptedData password:password]; //解密
    NSLog(@"加密结果 = %@",encryptedData);
    NSLog(@"解密结果 = %@",message);

END


BASE64加密iOS代码加密:

    1.BASE64加密iOS代码加密添加如下方法
:

.h
+ (NSString*)encodeBase64String:(NSString *)input;
+ (NSString*)decodeBase64String:(NSString *)input;
+ (NSString*)encodeBase64Data:(NSData *)data;
+ (NSString*)decodeBase64Data:(NSData *)data;



    2. .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;
}



    3.
BASE64加密iOS代码加密使用方法
//  

 BASE64加密
    NSString *baseEncodeString = [GTMBase64 encodeBase64String:password];
    NSString *baseDecodeString = [GTMBase64 decodeBase64String:baseEncodeString];
    NSLog(@"baseEncodeString = %@",baseEncodeString);
 
  NSLog(@"baseDecodeString = %@",baseDecodeString);

END

利用md5,和base64对应用中的敏感数据进行的加密和编码。

1. md5和base64的区别:

   MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。 计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。md5 运算结果是一个固定长度为128位的二进制数,经过一系列的运算得到32个16进制数。

   Base64是一种使用64基的位置计数法。它使用2的最大次方来代表仅可打印的ASCII 字符。这使它可用来作为电子邮件的传输编码。在Base64中的变量使用字符A-Z、a-z和0-9 ,这样共有62个字符,用来作为开始的64个数字,最后两个用来作为数字的符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。



2.MD5加密算法是不可逆的,base64加密算法是可逆的

iOS应用代码加密:

    1.    
除了以上的三种算法的iOS代码加密之外,iOS应用代码加密也是非常重要的,这里就不贴代码了,主要的iOS代码加密方式如下,iOS应用代码加密是 爱 加 密 平台提供的专业的iOS加密服务。





    2.
1)本地数据加密
对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息。





2)URL编码加密
对程序中出现的URL进行编码加密,防止URL被静态分析





3)网络传输数据加密
对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取


4)方法体,方法名高级混淆
对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码





5)程序结构混排加密
对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低



IOS常见的加密方法,常用的MD5和Base64的更多相关文章

  1. 常见的加密和解密算法—MD5

    一.MD5加密概述 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 13 ...

  2. C# 加密总结 一些常见的加密方法

    C# 加密总结 一些常见的加密方法 一 散列数据 代码如下: ? private static string CalculateSHA512Hash(string input)         {   ...

  3. iOS 几种加密方法

    iOS常见的几种加密方法 普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 1.base64加密 base64 编码是现代密码学的基础 基本原理: ...

  4. IOS开发之—— 各种加密的使用(MD5,base64,DES,AES)

    基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm ...

  5. 常见的加密和解密算法—DES

    一.DES加密概述 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并 ...

  6. 常见的加密和解密算法—AES

    一.AES加密概述 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用 ...

  7. 常见的加密和解密算法—BASE64

    一.BASE64加密和解密概述 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息.例如,在Java Persistence系 ...

  8. python接口自动化测试二十七:加密与解密MD5、base64

    # MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl ...

  9. iOS常用加密方法(aes、md5、base64)

    1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...

随机推荐

  1. Dynamics CRM2016 新功能之从CRM APP通过电子邮件发送页面链接

    通过电子邮件发送页面链接在PC端早就有了,但APP端却始终没有,这版加上了这个功能,这里还是以case为例,发送页面链接的方式有两种 第一种在list界面,长按你要share的数据,会出来选项shar ...

  2. socket系列之客户端socket——Socket类

    假设TCP套接字服务器端已经建立好并正在监听客户端的连接了,那么客户端就可以通过Socket类来发起连接.客户端发起一个连接请求后,就被动地在等待服务器的响应.这个类同样位于java.net包中,包含 ...

  3. Dynamics CRM 通过RetrieveEntityRibbonRequest和RetrieveApplicationRibbonRequest导出实体的Ribbon XML

    今天看到勇哥的博客介绍了两个request指令用来导出实体的Ribbon XML,在没有工具之前编辑ribbon都是手工导出xml然后编辑的对于很多一开始接触CRM就用工具的人可能不是很熟悉.查了下这 ...

  4. 【Unity Shaders】Alpha Test和Alpha Blending

    写在前面 关于alpha的问题一直是个比较容易摸不清头脑的事情,尤其是涉及到半透明问题的时候,总是不知道为什么A就遮挡了B,而B明明在A前面.这篇文章就总结一下我现在的认识~ Alpha Test和A ...

  5. JS 遍历对象 jQuery遍历对象

    jquery for 循环遍历对象的属性: //对象的定义如下: var person={id:"1",name:"springok",age:25}; for ...

  6. 开源项目——小Q聊天机器人V1.1

    小Q聊天机器人V1.0 http://blog.csdn.net/baiyuliang2013/article/details/51386281 小Q聊天机器人V1.1 http://blog.csd ...

  7. Android Studio科普篇——2.误区

    1.删除一行是ctrl+x? 这是一个被谣传得很广泛的快捷键,但其实删除一行的快捷键不是ctrl+x,而是ctrl+y.ctrl+x在不选中内容的情况下,是剪切当前行,而ctrl+y才是删除当前行,它 ...

  8. eclipse代码恢复(开发程序代码恢复)

    如果误操作,让本地代码丢失了不用怕,Eclipse local history可以恢复. 误删除文件后,直接ctrl+z可以恢复. 拉去代码覆盖了本地,也可以一个一个或者整体进行恢复:http://b ...

  9. Gradle笔记——关于Gradle 1.12

    到目前为止,Gradle已经出到2.1版本了,从1.12这个版本开始看,主要是因为我使用Gradle是Android开发所需要.公司里面是采用Android Studio来进行Android项目的开发 ...

  10. Socket编程实践(7) --Socket-Class封装(改进版v2)

    本篇博客定义一套用于TCP通信比较实用/好用Socket类库(运用C++封装的思想,将socket API尽量封装的好用与实用), 从开发出Socket库的第一个版本以来, 作者不知道做了多少改进,  ...