美文网首页
iOS开发之系统MD5加密

iOS开发之系统MD5加密

作者: MoneyLee | 来源:发表于2016-11-16 16:38 被阅读63次
常见的加密有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

相关文章

  • iOS开发之系统MD5加密

    常见的加密有Base64加密和MD5加密。Base64加密是可逆的,MD5加密目前来说一般是不可逆的。MD5生成的...

  • iOS 数据加密

    iOS 常用加密方式算法包括MD5加密、AES加密、BASE64加密 MD5加密 MD5:全称是Message D...

  • iOS加密

    iOS代码常见的加密方式包括MD5加密、AES加密、BASE64加密,RSA加密。 MD5加密 MD5是不可逆的只...

  • IOS开发——用户信息使用MD5加密

    MD5说明:MD5是安卓和ios系统中最常用的加密方式,其特点是加密后生成32位的字符串。且加密后的数据不可逆,网...

  • iOS 加密解密

    iOS各类加密算法详解 iOS & Java md5 加密报错@constant kCCAlignmentEr...

  • iOS代码加密常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS系统加解密函数详解:MD5,SHA,DES

    iOS系统加密函数详解 加密的种类 单向加密通过对数据进行摘要计算生成密文,密文不可逆推还原,如:MD5、SHA、...

  • iOS开发之 - MD5加密

    MD5(消息摘要算法第五版)是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。 MD5特点:1、压...

  • iOS开发——32位MD5加密

    在IOS开发过程中,为了保证数据的安全,我们通常要采取一些加密方法,常见的加密有Base64加密和MD5加密。Ba...

网友评论

      本文标题:iOS开发之系统MD5加密

      本文链接:https://www.haomeiwen.com/subject/fserpttx.html