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

为什么我的SHA-256转换不符合这个在线工具?

危璞
2023-03-14

我为SHA-256编写了一个字符串:

public static void main(String[] args) throws NoSuchAlgorithmException {
    MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
    String input = "00010966776006953D5567439E5E39F86A0D273BEE";
    byte[] output = sha256.digest(input.getBytes());
    System.out.println(new String(output));
}

使用此工具运行SHA-256得到的输出为3CC2243D50E87857A233965AA6B68B37563BFCC52B3C499FBB259B9AA87FFF40,但当我自己运行它时,得到的是<$=p xw 3 z 7 V;+ 。看来字节转换出了问题,但我不确定是什么问题。


共有1个答案

司允晨
2023-03-14

尝试将Byte[]转换为String时出错是正确的。下面是一个工作的代码:)

public static void main(String[] args) throws NoSuchAlgorithmException {
    final String input = "Nishit";
    final MessageDigest md = MessageDigest.getInstance("SHA-256");
    md.update(input.getBytes());
    final byte[] data = md.digest();
    StringBuilder sb = new StringBuilder(data.length * 2);
    for (byte b : data) {
        sb.append(String.format("%02x", b));
    }
    System.out.println(sb.toString());

}
 类似资料:
  • 行是我构造字符串并将其转换为byte[]以转换为SHA-256散列的地方,其中tmpSessionId是我从HTTP请求中获取的值。产生的散列将在以后的请求中发送。

  • 我正在为一个类编写一个单元测试,如下所示: 现在,当我运行这段代码时,它给我一个错误,即我无法将强制转换为Java中的集合。 ps:有一个单独的类,名为,它的setter如下所示: 而我正在尝试使用上面的这种方法。

  • 问题内容: 我试着用指数拟合一些数据已经有一段时间了scipy.optimize.curve\u fit曲线拟合但我真的有困难。我真的看不见有什么理由不起作用,但它只是产生了一条海峡线,不知道 为什么? 任何帮助都将不胜感激 问题答案: 数值算法往往更好地工作时,没有饲料非常小(或 (大)数字。 在本例中,图表显示数据的x和y值非常小。如果 如果缩放它们,拟合效果会更好: Note that af

  • 为什么他们不一样?我需要如何更改java版本以使其与Go版本完全相同?

  • 我现在正在学习遗传和多态性,除此之外,我也理解它。为什么我需要投三个。setY()不应该已经可以访问它了,因为我正在创建一个从G类继承的H对象。 第8行是语法错误。

  • 我在这里漏掉了什么?我试过上/下现金,每个字节之间的空格。我不确定还能试什么。 这个问题开始是因为我在Python中实现了这个,但在我担心代码之前,我试图理解为什么这是不同的。