iOS MD5加密

简介

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

MD5的特点

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

MD5的应用

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

  • 比如发送一个电子文档,发送前,我先得到MD5的输出结果a。然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。如果a与b一样就代表中途未被篡改。
  • 比如我提供文件下载,为了防止不法分子在安装程序中添加木马,我可以在网站上公布由安装文件得到的MD5输出结果。
    MD5解密网站:http://www.cmd5.com

为了方便使用,我们可以把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方面的代码可以关注我的简书,我会持续更新,大家一起探讨探讨
在此谢谢大家阅读😊

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MD5相关知识: 1.MD5:全称是Message Digest Algorithm 5,译为“消息摘要算法第5版...
    SunshineAutumn阅读 1,165评论 0 1
  • MD5加密全称是Message Digest Algorithm 5,译为“消息摘要算法第5版” MD5加密是最常...
    LYSNote阅读 16,315评论 7 41
  • MyMd5.h文件中+(NSString *) md5: (NSString *) inPutText ; MyM...
    T_label阅读 620评论 0 1
  • 前言 有时候,我们在项目中,需要对密码在客户端进行加密处理。这时就需要用到md5加密,废话不多说,直接上代码。 代...
    方同学哈阅读 2,843评论 5 10
  • 这几天的天气格外炎热,除非过命的交情或者万分紧急的事情,没人敢在这种天气里出门嘚瑟。那么,当我们在家中葛优瘫,热的...
    白羊先生阅读 815评论 6 18