java - 如何在Java中旋转128位数字

标签 java cryptography bit-manipulation

我正在尝试实现一个使用 128 位 key 的密码。 key 调度的一部分是将 key 向右旋转 29 位,但我不确定如何做到这一点,因为 Java 中没有单一数据类型可以保存整个 key 。我把它存储在两个长整型中,一个用于上半部分,一个用于下半部分。这是我认为应该可行但没有解决问题的一点数学:

keyLower >>>= 29;
keyLower |= keyUpper << 35;
keyUpper >>>= 29;
keyUpper |= keyLowerCopy << 29;

谁能帮帮我吗?

最佳答案

最后一行有错字:

//                          vv
keyUpper |= keyLowerCopy << 29;

看起来应该是 << 35 .

关于java - 如何在Java中旋转128位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29157828/

相关文章:

go - 从 Golang 中的字符串创建 HMAC_256

c - C 中的位旋转 - 计算位

java - 无法让 JOGL 运行,编译正常但在执行期间出错

java - 如何禁用某个 bean 的 Spring Autowiring ?

java - 如何通过单击方法从适配器类中的 string.xml 获取字符串

java - 如何让 Android 项目和 std Java 项目一起玩?

go - 如何在 Go 中为 SSH 生成 ECDSA key 对?

java - 代码行中发生了什么?

.net - 如何将 "double"的位作为 "long"

c - 确定 32 位 int 的符号