Tuesday, March 6, 2012

How do I create an encrypted string for password in Java?


You are creating a user management system that will keep user profile and their credential or password. For security reason you'll need to protect the password, to do this you can use theMessageDigest provided by Java API to encrypt the password. The code example below show you a example how to use it.

import java.security.MessageDigest;

public class EncryptExample {
    public static void main(String[] args) {
        String password = "secret";
        String algorithm = "SHA";

        byte[] plainText = password.getBytes();

        MessageDigest md = null;

        try {           
            md = MessageDigest.getInstance(algorithm);
        } catch (Exception e) {
            e.printStackTrace();
        }
                
        md.reset();             
        md.update(plainText);
        byte[] encodedPassword = md.digest();

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < encodedPassword.length; i++) {
            if ((encodedPassword[i] & 0xff) < 0x10) {
                sb.append("0");
            }

            sb.append(Long.toString(encodedPassword[i] & 0xff, 16));
        }

        System.out.println("Plain    : " + password);
        System.out.println("Encrypted: " + sb.toString());
    }
}


Below is the output....

Plain    : secret
Encrypted: e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4

No comments:

Post a Comment