Calculation of SHA3 hash value with bouncycastle - `error: cannot find symbol`

Calculation of SHA3 hash value with bouncycastle - `error: cannot find symbol`

我从这里举了个例子:

是第二个答案,不是被采纳的!

它在 Java 8 和 Java 11 中工作正常,尽管后者不受支持,如 maven central 所述。

现在我自己的项目已经复制了与示例中相同的行,并给出了标题中所述的错误信息。

有一个 运行 示例,我想知道为什么完全相同的代码在我的项目中不起作用...

//Klassenattribute (transient):
//transient BigInteger message;
transient byte[] message;

transient SHA3.DigestSHA3 digestSHA3 = new SHA3.Digest512();


//Konstruktor:
public Signature_Path (byte[] message) {//Done: BigInteger message 
//Klassenattribute initialisieren:
path= new Vector<Node>();

//Klassenattribute initialisieren (GEHEIM):
sk = new Secret_Key ();
std_rnd = new Random (); //Zufallszahlgenerator

//Klassenattribute initialisieren (privat):
k = 0;//Bitlaenge der Zufallszahlen p, q 
//Klassenattribute initialisieren (transient):
byte[] digest = digestSHA3.digest(message.getBytes());
this.message = digest;

}

我希望使用充气城堡方法 digestSHA3.digest 来计算变量 digest

我得到一个编译器标记,后者不可用。

UPDATE_20190212:使用 java8 和 java11 编译并得到完全相同的错误消息。

这是我的 pom.xml:

<dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcprov-jdk15on</artifactId>
           <version>1.60</version>
</dependency>

虽然编译器标记在括号外,但违规表达式不是 digestSHA3.digest,而是 message.getBytes()message 已经是 byte[],所以删除 .getBytes() 可以解决问题。