iOS工具 - MD5加密

MD5 加密

1 - 代码封装:对 NSString 进行扩展

// - NSString+MD5.h

1 #import <Foundation/Foundation.h>
2 @interface NSString (MD5)
3 
4 + (NSString *)stringToMD5:(NSString *)str;// 加密
5 
6 
7 @end

// - NSString+MD5.m

复制代码
 1 #import "NSString+MD5.h"
 2 #import <CommonCrypto/CommonCrypto.h>
 3 @implementation NSString (MD5)
 4 
 5 // 加密
 6 + (NSString *)stringToMD5:(NSString *)str{
 7     
 8     // 首先将字符串转换成 UTF-8 编码, 因为 MD5 加密是基于 C语言的,所以要先把字符串转化成 C语言的字符串
 9     const char *fooData = [str UTF8String];
10     
11     // 创建一个字符串数组,接收 MD5 的值
12     unsigned char result[CC_MD5_DIGEST_LENGTH];
13     
14     // 计算 MD5 的值, 这是官方封装好的加密方法:把我们输入的字符串转换成 16 进制的 32 位数,然后存储到 result 中
15     CC_MD5(fooData, (CC_LONG)strlen(fooData), result);// 第一个参数:要加密的字符串;第二个参数: 获取要加密字符串的长度;第三个参数: 接收结果的数组。
16    
17     // 创建一个字符串保存加密结果
18     NSMutableString *saveResult = [NSMutableString string];
19     
20     // 从result 数组中获取加密结果并放到 saveResult 中
21     for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
22         [saveResult appendFormat:@"%02x", result[i]];
23     }
24     /*
25         x表示十六进制,%02X  意思是不足两位将用0补齐,如果多余两位则不影响
26         NSLog("%02X", 0x888);  //888
27         NSLog("%02X", 0x4); //04
28        */
29     return saveResult;
30 }
31 
32 @end
复制代码

 

posted on   低头捡石頭  阅读(16)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示