我正在尝试将 HMAC(散列数据)转换为对 url 安全的字符串以进行身份验证。
我在将 sha256 散列(使用苹果加密库)生成的数据转换为小端和大端的 Unicode 时遇到问题,一个散列字符串可以大而不是小,反之亦然,适用于不同的散列字符串。对于一些散列字符串,它工作得很好。我认为这可能与超出范围的字符或其他东西有关。当我说它不起作用时,我的意思是它返回 nil。
代码如下所示:
NSString *mystring = [[NSString alloc] initWithData:myHash encoding:NSUnicodeEncoding
Unicode 是最好用的吗?我尝试编码为 UTF8,它返回 nil 并且 ascii 没有所有字符,我得到一些“?” 数据丢失的地方。
真的,我的问题是,我如何从 NSData 从 sha256 哈希中创建一个字符串?
解决方案:
https://github.com/eczarny/xmlrpc
NSData+Base64.h 和 NSData+Base64.m