से भिन्न है यदि मैं "जाओ" भाषा में SHA-256 हैश उत्पन्न करता हूं, तो मुझे जावा समकक्ष की तुलना में एक अलग बाइट-ऐरे मिलता है।जाओ SHA-256 हैश जावा SHA-256 हैश
41 79 186 235 199 123 95 226 16 59 51 161 112 245 192 50 21 66 180 250 179 109 153 18 233 148 16 237 156 69 163 150]
यह एक जावा कोड में भी ऐसा ही करना चाहिए::
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update("5nonce=5".getBytes());
byte[] digest = md.digest();
लेकिन में परिणाम
fmt.Println(getSha256([]byte("5nonce=5")))
जिसके परिणामस्वरूप सरणी की तरह दिखता है:
यह GO संस्करण है यह बाइट सरणी
[41, 79, -70, -21, -57, 123, 95, -30, 16, 59, 51, -95, 112, -11, -64, 50, 21, 66, -76, -6, -77, 109, -103, 18, -23, -108, 16, -19, -100, 69, -93, -106]
वे अलग क्यों हैं? जावा संस्करण को वास्तव में गो संस्करण की तरह काम करने के लिए कैसे बदलूं?
धन्यवाद, उन्हें परिवर्तित base64 यह बनाता है उनकी तुलना करना बहुत आसान है और उन्हें समान माना जाता है। – jan