解码密码或一些更复杂的方式为用户发送密码



我有一群用户。他们每个人都有相同的用户名 - 密码组合。我的数据库中有加密的数据(见下面的代码)。问题是,处理整个用例的最佳和最安全的方法是什么?我只想在电子邮件中发送用户名 - 密码组合,向每个用户发送相同的电子邮件。我应该只是解码密码或保存该时间段的文本密码,而不是用户发送电子邮件并删除文本密码,或者您对此有任何想法?

我的软件中没有那么无价的数据,但仍然...

private Users hashPasswordBase64(Users currentUser) {
    try {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        String text = currentUser.getPassword();
        md.update(text.getBytes("UTF-8"));
        byte[] digest = md.digest();
        currentUser.setPassword(Base64.encode(digest));
    } catch (NoSuchAlgorithmException ex) {
        Logger.getLogger(UsersController.class.getName()).log(Level.SEVERE, null, ex);
    } catch (UnsupportedEncodingException ex) {
        Logger.getLogger(UsersController.class.getName()).log(Level.SEVERE, null, ex);
    }

Betaminos几乎奠定了指导方针。

我建议以编码格式将密码存储在服务器端,并且仅在有人尝试以该人身份登录时才对其进行解码。

另一种选择(假设这是一个小规模的事情)是发送一个混淆的密码,其中包含大量垃圾邮件字符(此处:http://pastebin.com/hT1AVMUp)(此处:http://pastebin.com/9He1sk2m)并让他们在客户端对其进行解码。 它不会击败任何人,但它应该使解码程序变得更加困难。

我建议即时解码密码,发送电子邮件并处理变量。存储密码只会使特洛伊木马更容易检索它。

除此之外,我建议提供一个密码,用户在第一次登录后需要更改该密码。这样,用户将能够选择易于记忆的密码,并且发送明文密码不会有任何问题,因为这在一次使用后变得无效。

最新更新