星空网 > 软件开发 > 操作系统

iOS开发日记8

今天博主有一个密码加密的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.

MD5加密和SHA-1加密是计算机世界非常重要的两种加密算法.MD5加密通常用于对NSString的加密,而SHA-1加密通常用于对URL的加密,今天和大家重点分享一下MD5加密的方法.

使用MD5加密,我们需要给NSString增加一个类别,并导入<CommonCrypto/CommonDigest.h>头文件.

.h中的内容:

#import <Foundation/Foundation.h>

#import <CommonCrypto/CommonDigest.h>

 

@interface NSString (MD5encrypt)

-(NSString *) md5HexDigest;

@end

 .m中的内容:

#import "NSString+MD5encrypt.h"

 

@implementation NSString (MD5encrypt)

-(NSString *) md5HexDigest

{

    const char *original_str = [self UTF8String];

    unsigned char result[CC_MD5_DIGEST_LENGTH];

    // CC_MD5(original_str, strlen(original_str), result); 这里的用法明显是错误的,当original_str中包含空字符(\0)时

    CC_MD5(original_str, (unsigned int)self.length, result);

    NSMutableString *hash = [NSMutableString string];

    for (int i = 0; i < 16; i++)

        [hash appendFormat:@"%02X", result[i]];

    return [hash lowercaseString];

}

@end

现在的MD5已不再是绝对安全,对此,可以对MD5稍作改进,以增加解密的难度:

1.加盐(Salt):在明文的固定位置插入随机串,然后再进行MD5

2.先加密,后乱序:先对明文进行MD5,然后对加密得到的MD5串的字符进行乱序

总之宗旨就是:黑客就算攻破了数据库,也无法解密出正确的明文.

/** * 直接用MD5加密 */- (NSString *)digest:(NSString *)str {  NSString *anwen = [str md5String];
NSLog(@"%@ - %@", str, anwen); return anwen; } /** * 加盐 */- (NSString *)digest2:(NSString *)str { str = [str stringByAppendingString:Salt]; NSString *anwen = [str md5String]; NSLog(@"%@ - %@", str, anwen); return anwen; } /** * 多次MD5 */- (NSString *)digest3:(NSString *)str{ NSString *anwen = [str md5String]; anwen = [anwen md5String]; NSLog(@"%@ - %@", str, anwen); return anwen; }
/** * 先加密, 后乱序,推荐使用 */- (NSString *)digest4:(NSString *)str { NSString *anwen = [str md5String]; NSString *header = [anwen substringToIndex:2]; NSString *footer = [anwen substringFromIndex:2]; anwen = [footer stringByAppendingString:header]; NSLog(@"%@ - %@", str, anwen); return anwen; }



原标题:iOS开发日记8

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

全托管的红利期还有多久?:https://www.kjdsnews.com/a/1515317.html
电商仓储集运代发:https://www.kjdsnews.com/a/1515318.html
美国海外仓中大件代发:https://www.kjdsnews.com/a/1515319.html
餐饮行业抖音运营指南!:https://www.kjdsnews.com/a/1515320.html
再也不纠结去哪开店了,北美真香!:https://www.kjdsnews.com/a/1515321.html
Jumia发货技巧大揭秘:如何规范包裹发货操作,避免上演“消失的它”?:https://www.kjdsnews.com/a/1515322.html
Lazada为优化购物体验,升级买家取消订单政策:https://www.kjdsnews.com/a/1836358.html
Lazada为优化购物体验,升级买家取消订单政策:https://www.goluckyvip.com/news/186219.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流