iOS开发实践之MD5加密

什么是MD5:

全称是Message Digest Algorithm 5,译为“消息摘要算法第5版”

效果:对输入信息生成唯一的128位散列值(32个字符)

MD5的特点:

输入两个不同的明文不会得到相同的输出值

根据输出值,不能得到原始的明文,即其过程不可逆

MD5的应用:

由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用

主要运用在数字签名、文件完整性验证以及口令加密等方面

MD5改进:

加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5

先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序

栗子:

导入NSString+hash.h封装好的加密分类算法:下载地址http://pan.baidu.com/s/1o7hA4Vw

ViewController.m

//  ViewController.m

#import "ViewController.h"
#import "NSString+Hash.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [self MD5];

    [self MD5Salt:@"san"];

    [self doubleMD5];

    [self MD5Reorder];
}

//MD5加密
-(void)MD5{
    NSString *pwd = @"123456";
    NSString *pwdMD5 = [pwd md5String];
    NSLog(@"%@",pwdMD5);

}

/**
 * 撒盐 加密 MD5($pass.$salt)
 */
-(void)MD5Salt:(NSString *)salt{
    NSString *pwd = @"123456";
    pwd =[pwd stringByAppendingString:salt]; //撒盐:随机地往明文中插入任意字符串
    NSString *pwdMD5 = [pwd md5String];
    NSLog(@"%@",pwdMD5);
}

/**
 *  MD5(MD5($pass))
 */
- (void)doubleMD5{
    NSString *pwd = @"123456";
    NSString *pwdMD5MD5 = [[pwd md5String]md5String];
    NSLog(@"%@",pwdMD5MD5);
}

/**
 *  先加密,后乱序
 */
- (void)MD5Reorder{
    NSString *pwd = @"123456";
    NSString *pwdMD5 = [pwd md5String];
    NSLog(@"oldpwdMD5=%@",pwdMD5);
    NSString *prefix = [pwdMD5 substringFromIndex:3]; //从下标为3的开始截取(包含3)
    NSString *subfix = [pwdMD5 substringToIndex:3]; //截取0到3的字符串(不包含3)
    pwdMD5 = [prefix stringByAppendingString:subfix];
    NSLog(@"newpwdMD5=%@",pwdMD5);
}

@end
时间: 2024-08-07 16:21:01

iOS开发实践之MD5加密的相关文章

iOS 开发实践之 Auto Layout

原:http://xuexuefeng.com/autolayout/?utm_source=tuicool 本文是博主 iOS 开发实践系列中的一篇,主要讲述 iOS 中 Auto Layout(自动布局)在实际项目中的使用. Auto Layout 在 2012 年的 iOS 6 中发布,距今已经 2 年多了,如果从 2011 年在 Mac OS X 上发布的 Auto Layout 开始算起,已经超过 3 年了.如果你的简历上写着 2 年以上工作经验,而竟然不会使用 Auto Layout

iOS 开发实践之Auto Layout(From Vincent Sit)

本文是博主 iOS 开发实践系列中的一篇,主要讲述 iOS 中 Auto Layout(自动布局)在实际项目中的使用. Auto Layout 在 2012 年的 iOS 6 中发布,距今已经 2 年多了,如果从 2011 年在 Mac OS X 上发布的 Auto Layout 开始算起,已经超过 3 年了.如果你的简历上写着 2 年以上工作经验,而竟然不会使用 Auto Layout,真有点不可思议. 本文将会通过若干个 Demo 进行讲解,通过实践来理解 Auto Layout 到底是什么

IOS开发基础之—MD5加密算法

IOS开发基础之—MD5加密算法 MD5加密算法,实现类别如下: #import <CommonCrypto/CommonDigest.h> @interface NSString (md5) -(NSString *) md5HexDigest; @end #import "NSString+MD5HexDigest.h" @implementation NSString (md5) -(NSString *) md5HexDigest { const char *ori

iOS开发实践之GET和POST请求

iOS开发实践之GET和POST请求 GET和POST请求是HTTP请求方式中最最为常见的.在说请求方式之前先熟悉HTTP的通信过程: 请求 1.请求行 : 请求方法.请求路径.HTTP协议的版本 GET /MJServer/resources/images/1.jpg HTTP/1.1 2.请求头 : 客户端的一些描述信息 Host: 192.168.1.111:8080 // 客户端想访问的服务器主机地址 User-Agent: Mozilla/5.0 (Macintosh; Intel M

IOS中DES与MD5加密方案

  0 2 项目中用的的加密算法,因为要和安卓版的适配,中间遇到许多麻烦. MD5算法和DES算法是常见的两种加密算法. MD5:MD5是一种不可逆的加密算法,按我的理解,所谓不可逆,就是不能解密,那么它有什么用的,它的用处大了,大多数的登录功能都会使用到这种算法.后面根据我的项目经验来介绍. DES:一种使用密钥加密的块算法,所以,使用它加密时,需要一个密钥,加上一些设置和你需要加密的文段. 在IOS中,使用这两种加密算法非常简单,系统的<CommonCrypto/CommonCrypto.h

ios开发Base64编码以及加密相关学习

一:.Base64补充 ```objc 1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件. 65字符:A~Z a~z 0~9 + / = 对文件进行base64编码后文件数据的变化:编码后的数据~=编码前数据的4/3,会大1/3左右. 2.命令行进行Base64编码和解码 编码:base64 123.png -o 123.txt 解码:base64 123

iOS开发实践之网络检测Reachability

在网络应用开发中,有时需要对用户设备的网络状态进行实时监控,以至于对用户进行友好提示 或者根据不同网络状态处理不一样的逻辑(如视频播放app,根据当前的网络情况自动切换视频清晰度等等).用Reachability实现网络的检测. 苹果官方提供了Reachability的示例程序,便于开发者检测网络状态 https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip 1. 网络状态枚举NetworkS

iOS开发实践之网络检測Reachability

在网络应用开发中.有时须要对用户设备的网络状态进行实时监控.以至于对用户进行友好提示 或者依据不同网络状态处理不一样的逻辑(如视频播放app,依据当前的网络情况自己主动切换视频清晰度等等).用Reachability实现网络的检測. 苹果官方提供了Reachability的演示样例程序,便于开发人员检測网络状态 https://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip 1. 网络状态枚举Net

ios开发FMDB导入SQLCipher加密数据库

转:http://www.2cto.com/kf/201407/315727.html [iOS]FMDB/SQLCipher数据库加解密,迁移