【发布时间】:2020-07-21 02:50:21
【问题描述】:
我有以下代码来生成 SHA-1 哈希。
@Override
public String generateHash(String plainTextPassword) {
String hashedPassword = "";
try {
MessageDigest msdDigest = MessageDigest.getInstance("SHA-1");
msdDigest.update(plainTextPassword.getBytes("UTF-8"), 0, plainTextPassword.length());
hashedPassword = DatatypeConverter.printHexBinary(msdDigest.digest());
} catch (Exception e) {
System.out.println("HASHING FAILED");
}
return hashedPassword;
}
在我的本地机器上,使用 DatatypeConverter 类没有问题。包是 javax.xml.bind.DatatypeConverter; 当我将我的项目转移到运行 Ubuntu 的 linux 机器上时,DatatypeConverter 类没有被解析。
【问题讨论】:
-
这对您有帮助吗? stackoverflow.com/questions/43574426/…也许你在不同的机器上使用不同版本的Java?
-
无论如何我都会尽量远离那门课。
DataTypeConverter类是 XML 框架的一部分。它不应该用作通用转换器。自己编程或使用 Apache Commons 或 Google Guava 相对容易。是的,没有提供此功能很烦人,我将立即尝试解决。 -
正如@CodingTil 所指出的,JAXB 类已从 Java SE for Java 11+ 中删除。
-
查看stackoverflow.com/questions/19450452/… 中的答案,了解将字节转换为十六进制字符串的替代方法。
标签: java performance encryption types