Convert MD5 into String in java

后端 未结 4 1250
猫巷女王i
猫巷女王i 2021-02-04 17:46

Can anyone know how to convert the MD5 to String. In my case I have saved the password in MD5 in database. I am trying to retr

相关标签:
4条回答
  • 2021-02-04 18:30

    MD5 is single side hash function. So you cannot decode it. This is why on many web sites you have options "retrieve password" by creating new one.

    More about MD5

    0 讨论(0)
  • 2021-02-04 18:37
        String password = "123456";
    
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(password.getBytes());
    
        byte byteData[] = md.digest();
    
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < byteData.length; i++)
            sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
    
        System.out.println("Digest(in hex format):: " + sb.toString());
    
    0 讨论(0)
  • 2021-02-04 18:45

    Code for convert String to MD5

    private static String convertToMd5(final String md5) throws UnsupportedEncodingException {
            StringBuffer sb=null;
            try {
                final java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
                final byte[] array = md.digest(md5.getBytes("UTF-8"));
                sb = new StringBuffer();
                for (int i = 0; i < array.length; ++i) {
                    sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3));
                }
                return sb.toString();
            } catch (final java.security.NoSuchAlgorithmException e) {
            }
            return sb.toString();
        }
    
    0 讨论(0)
  • 2021-02-04 18:48

    I think that is the most elegant way to do that:

    public String getMD5(String data) {
            String result = null;
            MessageDigest md;
            try {
                md = MessageDigest.getInstance("MD5");
                md.update(data.getBytes(Charset.forName("UTF-8")));
                result = String.format(Locale.ROOT, "%032x", new BigInteger(1, md.digest()));
            } catch (NoSuchAlgorithmException e) {
                throw new IllegalStateException(e);
            }
            return result;
    }
    

    `

    0 讨论(0)
提交回复
热议问题