import java.security.*;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;

public class Main{
	public static String SHA256(String data){
	    String sb = "";
	    try{
	        MessageDigest md = MessageDigest.getInstance("SHA-256");
	        md.update(data.getBytes("UTF-8"));
	        byte byteData[] = md.digest();	        
	        sb=new BigInteger(1, byteData).setBit(256).toString(16);
	        sb=sb.substring(1);
	    } catch(Exception e){
	        e.printStackTrace();
	    }
	    return sb;
	}

	public static void main(String[] args) throws UnsupportedEncodingException {
		String m0="試試看", m=m0;
		byte[] mm;
		String digest="";
		int nonce=32;
		do {
			mm = m.getBytes("UTF-8");
			System.out.print("m="+m+":");
			m = new String(m.getBytes("UTF-8"), "UTF-8");
			digest=SHA256(m);
			System.out.println(" , SHA-256 digest=" + digest);
			
			m=m0+nonce;
			nonce++;
		} while ( !digest.startsWith("0000"));
	}
}
