Android SHA256 Hash Create SHA256(String text)

Here you can find the source of SHA256(String text)

Description

Converts a String into a SHA-256 hash.

License

Open Source License

Parameter

Parameter Description
text Text to convert.

Exception

Parameter Description
NoSuchAlgorithmException an exception
UnsupportedEncodingException an exception

Return

SHA256 hash.

Declaration

public static String SHA256(String text)
        throws NoSuchAlgorithmException, UnsupportedEncodingException 

Method Source Code

//package com.java2s;
//By using the Tapjoy SDK in your software, you agree to the terms of the Tapjoy SDK License Agreement.

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Main {
    /**//  w w w  .  j av a2s  .  co  m
     * Converts a String into a SHA-256 hash.
     * 
     * @param text
     *            Text to convert.
     * @return SHA256 hash.
     * @throws NoSuchAlgorithmException
     * @throws UnsupportedEncodingException
     */
    public static String SHA256(String text)
            throws NoSuchAlgorithmException, UnsupportedEncodingException {
        return hashAlgorithm("SHA-256", text);
    }

    /**
     * Converts a String into a specified hash.
     * 
     * @param text
     *            Text to convert.
     * @return hash.
     * @throws NoSuchAlgorithmException
     * @throws UnsupportedEncodingException
     */
    public static String hashAlgorithm(String hash, String text)
            throws NoSuchAlgorithmException, UnsupportedEncodingException {
        //TapjoyLog.i(TAPJOY_UTIL, "" + hash + ": " + text);

        MessageDigest md;
        byte[] sha1hash = new byte[40];

        // MD5, SHA-1, etc
        md = MessageDigest.getInstance(hash);
        md.update(text.getBytes("iso-8859-1"), 0, text.length());
        sha1hash = md.digest();

        return convertToHex(sha1hash);
    }

    /**
     * Converts a byte array into a hex string.
     * 
     * @param data
     *            Data to convert.
     * @return Data in hex as a string.
     */
    private static String convertToHex(byte[] data) {
        StringBuffer buf = new StringBuffer();

        for (int i = 0; i < data.length; i++) {
            int halfbyte = (data[i] >>> 4) & 0x0F;
            int two_halfs = 0;

            do {
                if ((0 <= halfbyte) && (halfbyte <= 9))
                    buf.append((char) ('0' + halfbyte));
                else
                    buf.append((char) ('a' + (halfbyte - 10)));
                halfbyte = data[i] & 0x0F;
            }

            while (two_halfs++ < 1);
        }

        return buf.toString();
    }
}

Related

  1. sha256Byte(String in)
  2. sha256Byte(byte[] in)
  3. doubleSha256(byte[] data)
  4. doubleSha256(byte[] data, int offset, int length)
  5. doubleSha256TwoBuffers(byte[] data1, byte[] data2)
  6. getHmacSHA256(String key, String input)
  7. sha256(byte[] data)
  8. cipher(int mode, byte[] data, byte[] secret)