当前位置: 首页 > 知识库问答 >
问题:

BigInteger HMAC转换异常

田佐
2023-03-14

我有一把钥匙:

byte: 0011100101010111000101111100101101100010100010111001010010000000

信息:

byte: 10110001

十六进制的hmac输出:

HMAC-SHA256:    ca3871e40207fc0cd66558e4e4fa2817d283da605c15e4c941ff7945ad4be29f

因此,如果我创建一个新的BigInteger(测试),如:

BigInteger test = new BigInteger(hmac);

如果我想得到十六进制值,比如:

System.out.println("\noutput: " + test.toString(16));

我明白了:

output: -35c78e1bfdf803f3299aa71b1b05d7e82d7c259fa3ea1b36be0086ba52b41d61

问题出在哪里?或者,如何从消息中计算hmac-sha256并使用Beginning中的大整数。

key、message和hmac是字节数组。

如果我尝试将字节“11010100”转换为Bigintger,它会转换为负“-101100”为什么Bigintger会将其转换为负?第一位是符号位,如何禁用符号位?

共有1个答案

那昊
2023-03-14

有一个Bigintger构造函数用于单独设置符号和大小,而不是默认期望2s补码位字符串。看这里。

示例:

Bmsg[i] = new BigInteger(1, msg[i]);
 类似资料:
  • 我在代码上收到一条错误消息,以查找支付200美元佣金的员工的总工资。一旦输入了所有员工的总销售额,就应该打印出属于每个不同薪酬类别的员工销售额。下面是代码: 这是我收到的确切错误消息: 我相信这与双重转换有关,但我不确定这有什么问题?有没有人能帮我搞清楚哪里出问题了(它编译没有错误)?我也尝试过只有双精度(包括数组),但这并没有解决问题。

  • 问题内容: 在Java 7中是否可以将对象转换为Json? 例: 问题答案: 从理论上讲,您还可以遍历堆栈跟踪中的元素并生成如下内容: 您可以像这样遍历异常:

  • 我已经了解到flatmap转换是异步的,在这个示例中,我在lambda定义中打印了线程的名称。它正在打印订阅源的同一线程。根据我的理解,它应该打印一个不同的线程名--而不是订阅源的线程名,因为这个转换必须在不同的线程中执行。

  • 我有3个spring web流——流1、流2、流3。flow2和flow 3已按如下方式指定父flow1: 在流1中,我有一个全局转换和一个结束状态: 在我的应用程序中的某个时刻,在flow2中,子流flow3被称为 ,在流程3中,抛出了一个InvalidPoleyContactException。它在流程1中被正确地找到(因为它的目的是清除货币中断原因()),但后来抛出了一个异常,即在流程2中没

  • 我有一个使用jersey JAR的web应用程序(WAR文件)。现在,当我试图部署它时,我遇到了类转换异常(一些引导servlet使用了jersey)。经过分析,我发现weblogic本身在Common\Modules中有jersey JAR。而我的web应用程序有不同版本的jersey JAR。现在,如果我删除了Common/Modules jar,那么我的web应用程序就被部署了。我想知道如何

  • 但是,如果web服务器没有回复任何东西(成功登录),那么通过改型,我会得到一个异常,因为是空的,web服务器回复的是一个简单的空字符串消息,而不是字符串数组。如果我将更改为,它就可以工作,但我不能,因为如果登录失败,它必须是一个字符串数组。