我试图哈希一个BigInteger / BigNum,我在Android / iOS获得不同的结果。 我需要获得相同的散列结果,以便两个应用程序按照SRP协议工作。 仔细观察,它对正数工作正常,但对负数不起作用(第一个半字节大于7)。 不知道哪一个是正确的,哪一个是要调整到与另一个匹配的。 安卓: void hashBigInteger(String s) { try { BigInteger a = new BigInteger(s, 16); MessageDigest sha = MessageDigest.getInstance("SHA-256"); byte[] b = a.toByteArray(); sha.update(b, 0, b.length); byte[] digest = sha.digest(); BigInteger d = new BigInteger(digest); Log.d("HASH", "H = " + d.toString(16)); } catch (NoSuchAlgorithmException e) { throw new UnsupportedOperationException(e); […]