我想将服务注入另一个服务:
@Injectable()
export class Dispatcher {
}
@Injectable()
export class TodoStore {
constructor(@Inject(Dispatcher) dispatcher:Dispatcher){
}
}
Run Code Online (Sandbox Code Playgroud)
但我总是得到错误:Dispatcher没有提供者!
谢谢.
我有以下实体:
@Entity
public class Employee implements Serializable{
private static final long serialVersionUID = 3454567L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int empId;
@Column
private String username;
public int getEmpId() {
return empId;
}
public void setEmpId(int empId) {
this.empId = empId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
Run Code Online (Sandbox Code Playgroud)
以下EJB:
public class UserDAO implements UserDAOInterface{
@PersistenceContext(unitName = "MainPersistenceUnit")
private EntityManager em;
@Override
public void persist(Employee sdf) {
try {
em.persist(sdf);
} catch (Exception …Run Code Online (Sandbox Code Playgroud) 我有一个带有MySQL数据库的Dovecot服务器,用于存储用户名和密码.数据库中的密码采用SHA512-CRYPT方案.
我使用脚本在数据库中插入散列密码.
doveadm pw -s SHA512-CRYPT -p password -r 500000
Run Code Online (Sandbox Code Playgroud)
我想使用JAVA应用程序散列密码.我发现了这个问题,我尝试使用相同的密码firstpassword和盐创建相同的结果哈希FooBarBaz.由于某种原因,我得到的哈希是不同的,虽然我使用相同的哈希算法,盐和密码.
这是我的Java代码:
byte[] password = "firstpassword".getBytes();
byte[] salt = "FooBarBaz".getBytes();
MessageDigest digest = MessageDigest.getInstance("SHA-512");
digest.reset();
digest.update(salt);
byte[] hashed = digest.digest(password);
String encodedHash = Base64.getEncoder().encodeToString(hashed);
System.out.printf("{SHA512-CRYPT}$6$%s$%s", "FooBarBaz",encodedHash);
Run Code Online (Sandbox Code Playgroud)
这输出哈希:
{SHA512-CRYPT}$6$FooBarBaz$5WPtOnXVI/a6f003WByGKIcsfa6x0ansxiyE8uEfJ0TE5pI+Rv9kcMLgdZboKg7ZSWQgWFg+pIqruvdg6aiP/g==
Run Code Online (Sandbox Code Playgroud)
我也尝试交换salt +密码的顺序来实现:
digest.update(password);
byte[] hashed = digest.digest(salt);
Run Code Online (Sandbox Code Playgroud)
这给了我:
{SHA512-CRYPT}$6$FooBarBaz$QWS8+W5EWhModF+uO2tcsd55tDxzdzGJ5FurIbEgwVCwKfT5UqwIvBNG1Oyws8bZEFdeGgyD0u6zS1KArvGf9Q==
Run Code Online (Sandbox Code Playgroud)
有没有人知道如果我使用相同的密码和盐,如何在Java中完成相同的哈希结果?
我正在寻找的哈希是:
{SHA512-CRYPT}$6$FooBarBaz$.T.G.7FRJqZ6N2FF7b3BEkr5j37CWhwgvPOOoccrr0bvkBbNMmLCxzqQqKJbNhnhC.583dTBLEuZcDuQe7NEe.
Run Code Online (Sandbox Code Playgroud)