iOS开发之系统MD5加密

本文介绍了两种常见的加密方式:Base64加密和MD5加密。Base64是一种可逆加密方式,而MD5则是一种不可逆的加密算法,生成固定长度的128bit,通常以32位16进制形式展示。文章还提供了iOS平台上的MD5加密实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#####常见的加密有Base64加密和MD5加密。Base64加密是可逆的,MD5加密目前来说一般是不可逆的。MD5生成的是固定的128bit,即128个0和1的二进制位,而在实际应用开发中,通常是以16进制输出的,所以正好就是32位的16进制,说白了也就是32个16进制的数字。

#####MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对的,但基本是不能一样的)。

#import@interface MD5Encrypt : NSObject // MD5加密 /* *由于MD5加密是不可逆的,多用来进行验证 */ // 32位小写 +(NSString *)MD5ForLower32Bate:(NSString *)str; // 32位大写 +(NSString *)MD5ForUpper32Bate:(NSString *)str; // 16为大写 +(NSString *)MD5ForUpper16Bate:(NSString *)str; // 16位小写 +(NSString *)MD5ForLower16Bate:(NSString *)str; @end

#import "MD5Encrypt.h" #import <CommonCrypto/CommonDigest.h> @implementation MD5Encrypt

#pragma mark - 32位 小写 +(NSString *)MD5ForLower32Bate:(NSString *)str{

//要进行UTF8的转码 const char* input = [str UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(input, (CC_LONG)strlen(input), result);

NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [digest appendFormat:@"%02x", result[i]]; }

return digest; }

#pragma mark - 32位 大写 +(NSString *)MD5ForUpper32Bate:(NSString *)str{

//要进行UTF8的转码 const char* input = [str UTF8String]; unsigned char result[CC_MD5_DIGEST_LENGTH]; CC_MD5(input, (CC_LONG)strlen(input), result);

NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) { [digest appendFormat:@"%02X", result[i]]; }

return digest; }

#pragma mark - 16位 大写 +(NSString *)MD5ForUpper16Bate:(NSString *)str{

NSString *md5Str = [self MD5ForUpper32Bate:str];

NSString *string; for (int i=0; i<24; i++) { string=[md5Str substringWithRange:NSMakeRange(8, 16)]; } return string; }

#pragma mark - 16位 小写 +(NSString *)MD5ForLower16Bate:(NSString *)str{

NSString *md5Str = [self MD5ForLower32Bate:str];

NSString *string; for (int i=0; i<24; i++) { string=[md5Str substringWithRange:NSMakeRange(8, 16)]; } return string; } @end

参考作者: LYSNote

转载于:https://juejin.im/post/5a32070e6fb9a04519699a8d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值