digest string using CP1252 encoding and MD5 hash - Android java.lang

Android examples for java.lang:String Unicode

Description

digest string using CP1252 encoding and MD5 hash

Demo Code


//package com.book2s;

import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

public class Main {
    /**//from   w  w w.  j  a va2 s . c  o  m
     * Length of generated hash
     */
    public static final int HASH_LENGTH = 32;
    /**
     * Algorithm used for hashing
     */
    public static final String HASH_ALGORITHM = "MD5";
    /**
     * Charset used for hashing
     */
    public static final String CHARSET = "CP1252";

    private static String digest(final String value) {
        final byte[] digested;
        try {
            digested = MessageDigest.getInstance(HASH_ALGORITHM).digest(
                    value.getBytes(CHARSET));
        } catch (final NoSuchAlgorithmException e) {
            return null;
        } catch (final UnsupportedEncodingException e) {
            return null;
        }

        final String hashed = new BigInteger(1, digested).toString(16);
        final int padding = HASH_LENGTH - hashed.length();
        if (padding == 0) {
            return hashed;
        }

        final char[] zeros = new char[padding];
        Arrays.fill(zeros, '0');
        return new StringBuilder(HASH_LENGTH).append(zeros).append(hashed)
                .toString();
    }
}

Related Tutorials