美文网首页
iOS字符串NSString加密SHA/MD5(Objectiv

iOS字符串NSString加密SHA/MD5(Objectiv

作者: Raywf | 来源:发表于2018-03-20 14:38 被阅读0次

2018.3.20

字符串在线加密
在线加密1

iOS 简单应用
创建一个NSString分类

//  NSString+RFCategory.h
#import <Foundation/Foundation.h>

@interface NSString (RFCategory)

///SHA-1加密
- (NSString *)rf_EncryptSHA1;

///SHA-256加密
- (NSString *)rf_EncryptSHA256;

///MD5加密
- (NSString *)rf_EncryptMD5;

@end


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

@implementation NSString (RFCategory)

- (NSString *)rf_EncryptSHA1 {
    if (self.length<=0) return nil;

    const char *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
    NSData *keyData = [NSData dataWithBytes:cstr length:self.length];

    return [NSString RF_EncryptSHA1:keyData];
}
+ (NSString *)RF_EncryptSHA1:(NSData *)keyData {
    if (keyData.length<=0) return nil;

    uint8_t digest[CC_SHA1_DIGEST_LENGTH];
    CC_SHA1(keyData.bytes, (unsigned int)keyData.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;
}

- (NSString *)rf_EncryptSHA256 {
    if (self.length<=0) return nil;

    const char *s = [self cStringUsingEncoding:NSASCIIStringEncoding];
    NSData *keyData = [NSData dataWithBytes:s length:strlen(s)];

    return [NSString RF_EncryptSHA256:keyData];
}
+ (NSString *)RF_EncryptSHA256:(NSData *)keyData {
    if (keyData.length<=0) return nil;

    uint8_t digest[CC_SHA256_DIGEST_LENGTH] = {0};
    CC_SHA256(keyData.bytes, (CC_LONG)keyData.length, digest);
    NSData *out = [NSData dataWithBytes:digest length:CC_SHA256_DIGEST_LENGTH];
    NSString *hash = [out description];
    hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
    hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
    hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];

    return hash;
}

- (NSString *)rf_EncryptMD5 {
    if (self.length<=0) return nil;

    const char *cStr = [self UTF8String];
    unsigned char digest[16];
    CC_MD5( cStr, (unsigned int)strlen(cStr), digest );

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

    return  output;
}

@end

参考链接:
1.iOS sha256加密

相关文章

  • iOS字符串NSString加密SHA/MD5(Objectiv

    2018.3.20 字符串在线加密在线加密1 iOS 简单应用创建一个NSString分类 参考链接:1.iOS ...

  • IOS 中的MD5使用

    这里简单的介绍一下,在iOS开发中,对字符串进行MD5加密的做法。 - (NSString *)stringToM...

  • IOS中的加密方式MD5、sha512

    title : IOS中的加密方式MD5、sha512category : IOS .h文件 .m文件

  • 加解密

    开发中经常会有字符串加解密的需求,如用户密码加密,可以直接MD5/SHA1加密,MD5/SHA1是不可逆的,验证时...

  • iOS 中MD5加密

    //MD5加密方法 -(NSString *)md5:(NSString *)input{ const char ...

  • MD5加密

    //MD5加密 +(NSString*)md5:(NSString*)sourceStr{ constchar*c...

  • 密码

    用MD5加密 NSString*password = [NSString stringWithFormat:@"%...

  • 对称加密,非对称加密,hash加密

    对称加密:DES,AES 非对称加密:RSA,DSA hash加密:MD5,SHA-1,SHA-2,SHA-3 对...

  • iOS密码MD5加密实现

    iOS md5加密密码 密码进行MD5加密是一个必要项,直接把代码拷贝进去,建立NSString的分类就可以。 ....

  • iOS自带的MD5加密方法,存着

    1、导入头文件: #import 2、MD5加密方法: - (NSString*) md5:(NSString*)...

网友评论

      本文标题:iOS字符串NSString加密SHA/MD5(Objectiv

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