相关疑难解决方法(0)

如何在Java中散列密码?

我需要哈希密码以存储在数据库中.我怎么能用Java做到这一点?

我希望获取纯文本密码,添加随机盐,然后将salt和散列密码存储在数据库中.

然后,当用户想要登录时,我可以获取他们提交的密码,从他们的帐户信息中添加随机盐,哈希并查看它是否等于存储的哈希密码及其帐户信息.

java passwords cryptographic-hash-function

170
推荐指数
10
解决办法
14万
查看次数

&0xff做什么和MD5结构?

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class JavaMD5 {

    public static void main(String[] args) {
        String passwordToHash = "MyPassword123";
        String generatedPassword = null;
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(passwordToHash.getBytes());
            byte[] bytes = md.digest();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < bytes.length; i++) {
                sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
            }
            generatedPassword = sb.toString();

        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(generatedPassword);
    }
}
Run Code Online (Sandbox Code Playgroud)

这一行是问题所在:

sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1)); …
Run Code Online (Sandbox Code Playgroud)

java md5

2
推荐指数
1
解决办法
4899
查看次数