【问题标题】:Getting the hash value of String获取String的hash值
【发布时间】:2018-10-11 11:55:55
【问题描述】:

我有以下代码来获取 String 的哈希值:

package encryption;
import java.security.MessageDigest; 
public class MessageDigestExample {

    public static void main(String[] args)throws Exception{
        String input = "This is a message";
        MessageDigest hash = MessageDigest.getInstance("SHA1");
        System.out.println("input : " + input);
        hash.update(Utils.toByteArray(input));
        System.out.println("digest : " + Utils.toHex(hash.digest()));
        } } 

我现在遇到了这个异常:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Utils cannot be resolved
    Utils cannot be resolved

我添加了apache-storm-1.2.2 lib,但不起作用,

请帮忙!

【问题讨论】:

标签: java hash sha1


【解决方案1】:

您使用的是(类?)名称Utils,但从未导入它。

您可能在这里缺少一些import what.ever.Utils 声明。

除此之外,您会得到一个运行时异常,因为您尝试运行 没有没有编译的代码。尽管某些 IDE(例如 eclipse)允许这样做,但通常这是一个坏主意,尤其是当您是 Java 新手时。在尝试运行一个类之前,您应该始终修复所有编译器错误。

【讨论】:

  • @nana 抱歉,但这并不像看起来那么容易。另一个答案已经为您提供了所需的确切语法。老实说:当你不明白如何导入一个类,以及如何在运行代码之前修复所有编译器错误......那么你在这里尝试实现的任何目标都必须等待!这些都是非常基础的问题,唯一的办法就是跟着一本好书/教程,一步一步地学习。
【解决方案2】:

您应该导入您正在使用的 Utils 库。如果我没看错,请在 package 部分下方添加以下行:

导入 org.apache.storm.utils.Utils;

这应该会为您解析库 Utils

【讨论】:

  • 这个 Utils-library 在你的类路径上吗?您已经将它用于其他用途了吗?
  • @nana 不可能是 same 错误。如果您添加该 import 语句...接下来的事情是编译器无法 find 该类。这意味着您的类路径设置缺少该类。微妙的细节在这里很重要。
  • 我得到:import org.apache.storm.utils.Utils;无法解决。
  • @nana 你下载了 apachestorm 并将其添加到你的类路径吗?
  • @nana - 另一方面,你并不真正需要它 - 你可以编写自己的 toByteArray,如以下答案所述:stackoverflow.com/a/11540189/2513200
猜你喜欢
  • 2014-10-31
  • 2012-07-08
  • 2016-02-25
  • 1970-01-01
  • 2013-10-05
  • 2014-01-02
  • 2019-08-24
  • 1970-01-01
  • 2010-11-30
相关资源
最近更新 更多