java - Angular 中的 Crypto 和 Java 中的 BCrypt 不匹配
问题描述
我在下面的 java 块中有代码
public static String hashPassword(String password_plaintext) {
return BCrypt.hashpw(password_plaintext, BCrypt.gensalt());
}
public static boolean checkPassword(String password_plaintext, String stored_hash) {
return BCrypt.checkpw(password_plaintext, stored_hash);
}
public static String generateMD5(String text) {
MessageDigest md;
try {
md = MessageDigest.getInstance("MD5");
byte[] messageDigest = md.digest(text.getBytes());
BigInteger number = new BigInteger(1, messageDigest);
String hashtext = number.toString(16);
return hashtext;
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return text;
}
public static void main(String[] args) {
String a = "0c35eedfd013e5efa72d8c756b3f22a0";
String b = generateMD5("491866");
String c = hashPassword(b);
System.out.println(checkPassword(a,c));
}
在角度上,我使用
Crypto.MD5('491866').toString()
用于生成密码,但输出为假
然后我尝试使用密码 123456 ==> 进行测试,输出为真。你能告诉我这里有什么问题吗?90% 的 checkPassword 运行良好,但有时不行。
解决方案
推荐阅读
- python-3.x - python如何将id分配给字符串?
- bash - 使用 if else bash 脚本检查变量是否存在
- flutter - 如何动态本地化文本字段文本方向取决于用户输入到 rtl 或 ltr 方向
- javascript - Javascript中返回值的类型转换
- javascript - 更改主要内容而不更改整页
- python - PySNMP:如何在同一个代理中实现 CommandResponder 和 NotificationOriginator?
- reactjs - 没有根据反应中的状态变化触发 UseEffect
- reactjs - 在 Github 上托管后,带有 React 的 Twilio Chat API 无法正常工作
- php - 将函数名称传递给其他函数并从 PHP 中的不同文件调用
- node.js - 使用 npx 运行包时访问 node_modules 中的文件