【问题标题】:Remove spaces in SHA256 output删除 SHA256 输出中的空格
【发布时间】:2014-10-14 14:19:35
【问题描述】:

谁能解决我在 iOS 中与 SHA256 相关的问题?

#import <CommonCrypto/CommonDigest.h>

NSData *dataIn = [@"XXXXX" dataUsingEncoding:NSASCIIStringEncoding];
NSMutableData *macOut = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];

CC_SHA256(dataIn.bytes, dataIn.length,  macOut.mutableBytes);

NSLog(@"dataIn: %@", dataIn);
NSLog(@"macOut: %@", macOut);

我得到这样的输出:

2014-10-14 10:46:43.602 sha256[480:70b] dataIn: <416e616e 64>
2014-10-14 10:46:43.604 sha256[480:70b] macOut: <e9fb6a39 4db5ffd6 dba9b31a c7d9a90d 56f90767 afaf1e14 d6dcaa37 db180932>

我真正需要的是我需要删除 macOut 中的空间。即像这样

【问题讨论】:

  • 是的,我已经完成了,但我需要明确的步骤来从输出日志中删除空间?
  • 为什么需要?该空间只是为了便于阅读。它实际上不是数据的一部分...
  • 是的,我明白,但我的团队希望从中删除空间,实际上这些数据应该在 Web 服务中验证,他们要求找到删除空间的解决方案
  • 我想要这样的输出:

标签: ios encryption sha256


【解决方案1】:

在你的代码下面添加这个:

NSString *macOutString = [NSString stringWithFormat:@"%@", macOut];
NSString *encryptedString = [macOutString stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"macOut: %@", encryptedString);

您还可以使用 -http://www.xorbin.com/tools/sha256-hash-calculator 验证加密

【讨论】:

  • @user3744674 请标记答案正确以关闭此问题。
  • 你能帮我解决 SHA 512 中的另一个疑问,我为 SHA 512 实施的相同步骤也是 NSMutableData *macOut = [NSMutableData dataWithLength:CC_SHA512_DIGEST_LENGTH]; my output is: iam getting more zero's i think its wrong can u help me in coding
  • @AnandFresher 答案是一样的。尝试理解逻辑,而不是问每个问题。您需要将 NSData 转换为 NSString 才能删除空格。我相信谷歌搜索会有所帮助。祝你好运 - SHA512 - pastebin.com/raw.php?i=2GmKmSjC
  • 再次感谢@raurora 它的工作,我没有处理 SHA 512 和 ShaA 256,你仍然继续询问这些步骤,再次感谢兄弟 :) 上帝保佑
【解决方案2】:

【讨论】:

  • 这是一个仅限链接的答案,请始终至少描述链接中的代码的作用以及(如果不清楚)它如何帮助解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
相关资源
最近更新 更多