Ho trovato un'altra dipendenza:
https://mvnrepository.com/artifact/o...v-jdk15on/1.54
codice:
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.54</version>
</dependency>
Se edito in questo modo la classe posso dimenticarmi la disponibilità del JDK opportuno sul server?
codice:
package web1;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import org.bouncycastle.jcajce.provider.digest.SHA3;
import org.bouncycastle.util.encoders.Hex;
public class FromStringToHash {
private String Code;
private String PreCode;
private String HashText;
public void FromStringToHash(String Code, String PreCode){
this.Code = Code;
this.PreCode = PreCode;
}
public void FromStringToHash(String Code){
this.Code = Code;
this.PreCode = "";
}
public static String hashConvert(String Password) throws NoSuchAlgorithmException {
SHA3.DigestSHA3 digestSHA3 = new SHA3.Digest512();
byte[] digest = digestSHA3.digest(utf8Bytes(Password));
return Hex.toHexString(digest);
}
private static byte[] utf8Bytes(String str) {
try {
return str.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
throw new Error("Errore grave, UTF-8 non supportato!");
}
}
public String combineString(String a, String b) {
try {
StringBuilder sb = new StringBuilder("");
sb.append(a);
sb.append(b);
return sb.toString();
}catch(Exception e){
throw new RuntimeException(e);
}
}
public String getHashText() {
try {
HashText = hashConvert(combineString(hashConvert(this.Code), hashConvert(this.PreCode)));
return HashText;
} catch (Exception e){
throw new RuntimeException(e);
}
}
}