Java MessageDigest Vs iOS CCHmac-sha256
现在我需要CCHmac-sha256的帮助。当我在iOS和Java中消化纯文本时,我没有得到相同的输出。请参考以下代码并指导我解决此问题 iOS代码Java MessageDigest Vs iOS CCHmac-sha256,java,ios,cryptography,Java,Ios,Cryptography,现在我需要CCHmac-sha256的帮助。当我在iOS和Java中消化纯文本时,我没有得到相同的输出。请参考以下代码并指导我解决此问题 iOS代码 MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(s1.getBytes()); byte[] h = md.digest(); Base32 base32 = new Base32(); String base32_h = repl
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(s1.getBytes());
byte[] h = md.digest();
Base32 base32 = new Base32();
String base32_h = replaceIllegalCharacters(base32.encodeAsString(h));
System.out.println("\n"+base32_h+"\n");
String cc1 = base32_h.substring(0, 4);
CCHmac(kCCHmacAlgSHA256、cKey、strlen(cKey)、cData、strlen(cData)、cHMAC);
NSData*哈希密码2=
[NSData DATA WITH字节:cHMAC长度:CC_SHA256_摘要_长度];
我正在将此nsdata转换为base32字符串
Java代码
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(s1.getBytes());
byte[] h = md.digest();
Base32 base32 = new Base32();
String base32_h = replaceIllegalCharacters(base32.encodeAsString(h));
System.out.println("\n"+base32_h+"\n");
String cc1 = base32_h.substring(0, 4);
您的Java示例正在执行SHA-256哈希,而不是HMAC
您需要使用的是
Mac
的实例,而不是MessageDigest
@DuncanJones,您的链接示例似乎已经消失了。@Rick谢谢。我已经切断了连接。听起来OP需要查看iOS代码。