我在 Java 中有这个算法来将密码存储在数据库中。我想用 Ruby on Rails 重写我的应用程序,所以我需要相同的算法来比较散列密码。这个算法的 Ruby 等价物是什么?
public static String encrypt(String password) {
MessageDigest md;
try {
md = MessageDigest.getInstance("SHA");
md.update(password.getBytes("UTF-8")); // step 3
byte raw[] = md.digest(); // step 4
String hash = (new BASE64Encoder()).encode(raw); // step 5
return hash; // step 6
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
仅出于测试目的,“teste123”密码在我的 Java 版本中生成此哈希:PQ87ndys7DDEAIxeAw5sE6R4y08=