IOS进行md5加密和哈希加密算法的方法

作者: shaneZhang 分类: ios技术 发布时间: 2014-08-21 14:11

ios加密算法的选择

我写了一个分类,废话不多说,直接上代码

#import <Foundation/Foundation.h>

@interface NSString (ShaneZhang)
// MD5加密
- (NSString *)md5FromString;
// 哈西加密
- (NSString*)getSha1FromString;
@end

//
//  NSString+ShaneZhang.m
//  PostDemo
//
//  Created by shanezhang on 14-8-21.
//  Copyright (c) 2014年 TimeRadio. All rights reserved.
//

#import "NSString+ShaneZhang.h"
#import <CommonCrypto/CommonDigest.h>

@implementation NSString (ShaneZhang)
// MD5加密
- (NSString *)md5FromString
{
    const char *cStr = [self UTF8String];
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    CC_MD5(cStr, strlen(cStr), result);
    NSMutableString *hash = [NSMutableString string];
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
    {
        [hash appendFormat:@"%02X",result[i]];
    }
    return [hash lowercaseString];
}


- (NSString*)getSha1FromString
{
    const char *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
    NSData *data = [NSData dataWithBytes:cstr length:self.length];
    
    uint8_t digest[CC_SHA1_DIGEST_LENGTH];
    
    CC_SHA1(data.bytes, data.length, digest);
    
    NSMutableString* output =
 [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
    
    for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
        [output appendFormat:@"%02x", digest[i]];
    
    return output;
}
@end

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注