加密

iOS sha256 加密[包括中文]

2018-01-04  本文已影响1043人  SKCongroo

SHA256

  • 谷歌搜到的第一条 SHA256 加密的简书文章,提供的 SHA256 加密是不完善的,在对中文加密时会直接崩溃,我遇到了该问题并完善了一下。
  • 可以对中文进行加密。(出现问题,发现下面这个函数并不能对中文正常加密,加密后的信息是错误的!!)
  • Stack Overflow 原文链接

代码 (对中文没用)

#import "NSString+Expand.h"
#import <CommonCrypto/CommonHMAC.h>

@implementation NSString (Expand)

- (NSString *)SHA256 {
    
    NSData *dataIn = [self dataUsingEncoding:NSASCIIStringEncoding];
    NSMutableData *macOut = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];
    CC_SHA256(dataIn.bytes, (CC_LONG)dataIn.length,  macOut.mutableBytes);
    NSString *hash = [macOut description];
    hash = [hash stringByReplacingOccurrencesOfString:@" " withString:@""];
    hash = [hash stringByReplacingOccurrencesOfString:@"<" withString:@""];
    hash = [hash stringByReplacingOccurrencesOfString:@">" withString:@""];
    return hash;
}

@end

2018/1/25:

上面的加密还是不对,对中文加密还是会出问题,和服务器对接不起来,后来服务器的哥们给了我一个封装好的加密库,可以正常对中文进行加密。
链接: https://pan.baidu.com/s/1mXpsdrmOBSmqzKaQtWVFag 密码: yang

找到一个完美解决方案:

GitHub 上的支持 Swift 各类加密的开源库,更新迅速,解决所有加密问题(点这)。
暂未发现 OC 的库,有知道的可以告诉我一下。

上一篇下一篇

猜你喜欢

热点阅读