iOS开发之旅首页投稿(暂停使用,暂停投稿)iOS Developer

iOS MD5加密

2016-04-15  本文已影响939人  帅只是表象
简介

MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经过MD5处理后看不到原文,是一种加密算法。

MD5的特点

输入两个不同的明文不会得到相同的输出值
根据输出值,不能得到原始的明文,即其过程不可逆

MD5的应用

由于MD5加密算法具有较好的安全性,而且免费,因此该加密算法被广泛使用
主要运用在数字签名、文件完整性验证以及口令加密等方面

为了方便使用,我们可以把md5写成一个分类。

头文件
#import <Foundation/Foundation.h>

@interface NSString (MD5)

- (NSString *)md5_32bit;
- (NSString *)MD5_32BIT;

@end
实现文件
#import "NSString+MD5.h"
#import <CommonCrypto/CommonDigest.h>

@implementation NSString (MD5)

- (NSString *)md5_32bit {
    const char *cStr = [self UTF8String];
    unsigned char digest[CC_MD5_DIGEST_LENGTH];
    CC_MD5( cStr, (CC_LONG)self.length, digest );
    NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
        [result appendFormat:@"%02x", digest[i]];
    return result;
}

- (NSString *)MD5_32BIT {
    const char *cStr = [self UTF8String];
    unsigned char digest[CC_MD5_DIGEST_LENGTH];
    CC_MD5( cStr, (CC_LONG)self.length, digest );
    NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
        [result appendFormat:@"%02X", digest[i]];
    return result;
}

@end

注:相关内容我会继续更新。如果想找一些iOS方面的代码可以关注我的简书,我会持续更新,大家一起探讨探讨
在此谢谢大家阅读😊

上一篇 下一篇

猜你喜欢

热点阅读