1. SHA256
- 是一种哈希算法,输入、输出均为
bytes
(二进制),因此对NSString
进行SHA256转换之前,先转为UTF-8编码的NSData
,然后使用输入、输出均为NSData
的SHA256算法
- 如果用输入、输出均为
NSString
的SHA256算法,可能会出问题
- 下面是输出为
string
的SHA256算法
- Python(输入为转码后的二进制,输出的
hexdigest
为string
)
import hashlib
str = "kailinwang"
shaStr = hashlib.sha256(str.encode('utf-8')).hexdigest()
print(shaStr)
print(type(shaStr))
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210408212102272.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1MDg3NDI1,size_16,color_FFFFFF,t_70)
- Objective-C(输入、输出均为
NSString
,不建议使用)
#import <CommonCrypto/CommonDigest.h>
+ (NSString*)doSHA256:(NSString*)input{
const char* str = [input UTF8String];
unsigned char result[CC_SHA256_DIGEST_LENGTH];
CC_SHA256(str, (CC_LONG)strlen(str), result);
NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA256_DIGEST_LENGTH*2];
for(int i = 0; i<CC_SHA256_DIGEST_LENGTH; i++){
[outpu