适用于 iPhone 的 Objective-C 中的 Sha256
当我使用此代码创建字符串的 sha256 时,
unsigned char hashedChars[32];
NSString *inputString;
inputString = [NSString stringWithFormat:@"hello"];
NSData * inputData = [inputString dataUsingEncoding:NSUTF8StringEncoding];
CC_SHA256(inputData.bytes, inputData.length, hashedChars);
它正确返回哈希,但我需要插入这样的字符串 \x00\x25\x53 ,在这种情况下,该函数返回 sha256空字符串,因为指定的编码不能用于转换接收者。
现在,我的问题是:如何插入这个特殊字符来生成正确的哈希值?谢谢
When I use this code to create a sha256 of a string
unsigned char hashedChars[32];
NSString *inputString;
inputString = [NSString stringWithFormat:@"hello"];
NSData * inputData = [inputString dataUsingEncoding:NSUTF8StringEncoding];
CC_SHA256(inputData.bytes, inputData.length, hashedChars);
It returns the hash correctly, but I need to insert a string like this \x00\x25\x53 and in this case, the function returns a sha256 of empty string because the specified encoding cannot be used to convert the receiver.
Now, my question is:How to insert this special characters for generate a correct hash? Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
试试这个,它对我有用
1) 获取纯文本输入的哈希值
2) 获取
NSData
的哈希值作为输入注意:- 我使用了
NSData
类别,所以代码如下Try this, it worked for me
1) To get a hash for plain text input
2) To get hash for
NSData
as inputNote:- I have used
NSData
category, so the code is as follow重要的是要知道您需要导入:
希望这有帮助!
It's important to know that you need to import:
Hope this help!
那么您可能应该使用
NSData
而不是NSString
。你从哪里得到那个字符串?You probably should use
NSData
instead ofNSString
then. Where do you get that string from?有人在 Swift 3.0 中寻找解决方案。这是
如何使用它,
也不要忘记在Bridging-Header.h中导入
#import
>Some one looking the solution in Swift 3.0. here is
How to Use it
also don't forgot to import
#import <CommonCrypto/CommonHMAC.h>
in your Bridging-Header.h