java - 如何将2048位的BigInteger分解成固定数量的64位的字?

标签 java biginteger xor

我有一个包含 2048 位 BigInteger 数字的 key 。 我想把它分成固定数量的64位的字,然后计算所有这些字的异或; 有谁能帮我用java实现这个吗? 这是我必须实现的方法:

public static BigInteger parityWordChecksum(BigInteger key) {
//result is a 64 bit integer
    return result;
}

最佳答案

LongBuffer buffer = ByteBuffer.wrap(myBigInteger.toByteArray()).asLongBuffer();
long xor = 0;
while (buffer.hasRemaining()) {
  xor ^= buffer.get();
}
return BigInteger.valueOf(xor);

关于java - 如何将2048位的BigInteger分解成固定数量的64位的字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32655545/

相关文章:

java - 应用程序不会写入 MS DB

java - 如何在我的代码中实现 BigInteger 类?

python - 尝试完成 Google foo.bar 级别 3 (queue_to_do) 并继续超过时间限制

c - C异或可执行文件加密/解密的问题

java - 如何使数据库连接类成为单例?

java - 从以字节数组形式获取的 docx 文件创建 ZipFileSystem,而不写入文件

java - 搜索 int 的问题

java - JDK RSACore.priCrypt 如何工作以及 getBlindingRandomPair 是什么意思?

java - BigInteger 如何解释字符串中的字节?

language-agnostic - XOR 中的 Exclusive 到底是什么意思?