private boolean checkV0Password(String passwordHash, long id, String clearpass) throws Exception { return passwordHash.equals(HashVersion.ZERO.hash(Long.toString(id, 16), clearpass, null)); }
@Override public boolean check (String seed, String secret, String hash) throws Exception { byte[] b = Base64.decode(hash); byte[] salt = new byte[ONE.getSalt().length]; System.arraycopy (b, 1, salt, 0, salt.length); String computedHash = ONE.hash(seed, secret, ONE.getSalt(salt)); return computedHash.equals(hash); }
private void setV0Password (User u, String clearpass) throws Exception { assertNotNull(clearpass, "Invalid password"); u.setPasswordHash(HashVersion.ZERO.hash(Long.toString(u.getId()), clearpass, null)); } }
private void setV1Password (User u, String clearpass) throws Exception { assertNotNull(clearpass, "Invalid password"); u.setPasswordHash(HashVersion.ONE.hash(Long.toString(u.getId(),16), clearpass, HashVersion.ONE.getSalt())); }
c.setId(id); c.setUser(u); c.setHash(HashVersion.ONE.hash(Long.toString(c.getUser().getId(),16), secret, HashVersion.ONE.getSalt())); db.session().save(c); if (rr != null)
@Test public void testV0() throws Exception { String hash = "31c1ffc755678596c7d76756b45b157f8dbda90a"; assertEquals ("version is ZERO", HashVersion.ZERO, HashVersion.getVersion(hash)); assertEquals("V0 hash", hash, HashVersion.ZERO.hash("17", "test", null)); assertTrue ("V0 check", HashVersion.ZERO.check ("17", "test", hash)); }
public void saveEntity () { Consumer c = getInstance(); if (getBinder().writeBeanIfValid(c)) { c.setUser(this.selectedUser); String sk = "?"; try{ sk = Base64.toBase64String(generateKey().getEncoded()); c.setHash(HashVersion.ONE.hash(Long.toString(c.getUser().getId(),16), sk, HashVersion.ONE.getSalt())); } catch (Exception e) { getApp().getLog().error(e); } getApp().addWindow(new ConfirmDialog( getApp().getMessage("secretTitle"), getApp().getMessage("secretDescription", sk), getApp().getMessage("secretConfirm"), getApp().getMessage("cancel"), confirm -> { if (confirm) { super.saveEntity(); } })); } }