数据加密的基本使用

来源:互联网 发布:激光笔软件 编辑:程序博客网 时间:2024/06/05 11:51


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; }

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 剪力墙偏心受拉怎么办 韵达快递寄丢了怎么办 重要快递送丢了怎么办 快递员送货丢了怎么办 买的快递丢失了怎么办 申通把件弄丢了怎么办 淘宝快递送丢了怎么办 我的快递丢了怎么办 顺丰快递丢件怎么办 韵达快递不发货怎么办 发物流丢了怎么办啊 圆通快递寄丢了怎么办 中通快递弄丢了怎么办 中通快递寄丢了怎么办 中通快递丢了怎么办 物流没保价坏了怎么办 顺丰保值快递丢了怎么办 顺丰保价件丢失怎么办 公司购买货物对方没有发票怎么办 加工货物对方不取怎么办 物流发货发错了怎么办 货车拉的货丢了怎么办 壹米滴答丢货怎么办 物流东西弄丢了怎么办 理赔款账号打错了怎么办 顺丰快递搞丢了怎么办 论文表格跨页了怎么办 网线突然没网了怎么办 室内门高门洞矮怎么办 路基填方土质含水率大怎么办 公路工程材料价格不予调差怎么办 桩基偏位60公分怎么办 定义的跨板受力筋长度不够怎么办 支座梁体预埋钢板忘记埋了怎么办 做nt小孩头朝下怎么办 简历上传的照片太大怎么办 本科毕业论文没写英文摘要怎么办 气泵储气罐有个小眼漏气怎么办 吸拉开关坏了怎么办 窗口数量已达上限怎么办 村土地原始台账没有怎么办