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 的库,有知道的可以告诉我一下。