<commit_before>= Java SHA3 암호화 라이브러리

BouncyCastle 라이브러리를 이용하여 Java에서 SHA3 암호화를 할 수 있다.
MIT License의 라이브러리이며 SHA3 이외에 다른 암호화 방식도 지원한다.
CrtyoSHA3의 key값에는 암호화할 문자를 넣으면 되고 
hash값에는 224, 256, 384, 512중 하나를 넣어주면 된다.

*소스코드*
-----
public class Crypto {
    public String CryptoSHA3(String key, int hash) {
	
		// 1.x 버전
        //DigestSHA3 md = new DigestSHA3(hash);
        // 2.x 이상 부터 
        DigestKeccak  md = new DigestKeccak(hash);
        try {
            md.update(key.getBytes("UTF-8"));
        }
        catch (UnsupportedEncodingException e){
            e.printStackTrace();
        }
        byte[] digest = md.digest();
 
        return org.bouncycastle.util.encoders.Hex.toHexString(digest);
    }
    
    public static void main(String[] args){
    	Crypto crt = new Crypto();
    	System.out.println("HASH 224 : " + crt.CryptoSHA3("가나다라마바", 224));
		System.out.println("HASH 256 : " + crt.CryptoSHA3("가나다라마바", 256));
		System.out.println("HASH 384 : " + crt.CryptoSHA3("가나다라마바", 384));
		System.out.println("HASH 512 : " + crt.CryptoSHA3("가나다라마바", 512));
    }
}
-----

*출력*
-----
HASH 224 : 2748b9814be815b8c1c0ac80789cd16f84d3d725b944a9bee7a13cc8
HASH 256 : 9bd8525800c25e5d15132c5503b771d302f801902934b139f00b0710d76485fd
HASH 384 : 663f3b7d43554c70a3e6aea819a76da6dfe8211604ef709148fb3bcf0f136ddfb5d8d03bb2ba1f260f88e97391855ea9
HASH 512 : 12aa8a5a125c9177d83da90b69d182ee220eaf22584120af61c51821e31f9dc8072d95e5cc4b3caec3b19345dbeefd8e1cd407f238f13711ac9965122aa6d1a4
-----<commit_msg>Update 2016-10-19-Java-SH-A.adoc<commit_after>= Java SHA3 암호화 라이브러리



BouncyCastle 라이브러리를 이용하여 Java에서 SHA3 암호화를 할 수 있다.
MIT License의 라이브러리이며 SHA3 이외에 다른 암호화 방식도 지원한다.
CrtyoSHA3의 key값에는 암호화할 문자를 넣으면 되고 
hash값에는 224, 256, 384, 512중 하나를 넣어주면 된다.

*소스코드*

[source,java]
--
public class Crypto {
    public String CryptoSHA3(String key, int hash) {
	
	// 1.x 버전
    	//DigestSHA3 md = new DigestSHA3(hash);
        // 2.x 이상 부터 
        DigestKeccak  md = new DigestKeccak(hash);
        try {
            md.update(key.getBytes("UTF-8"));
        }
        catch (UnsupportedEncodingException e){
            e.printStackTrace();
        }
        byte[] digest = md.digest();
 
        return org.bouncycastle.util.encoders.Hex.toHexString(digest);
    }
    
    public static void main(String[] args){
    	Crypto crt = new Crypto();
    	System.out.println("HASH 224 : " + crt.CryptoSHA3("가나다라마바", 224));
		System.out.println("HASH 256 : " + crt.CryptoSHA3("가나다라마바", 256));
		System.out.println("HASH 384 : " + crt.CryptoSHA3("가나다라마바", 384));
		System.out.println("HASH 512 : " + crt.CryptoSHA3("가나다라마바", 512));
    }
}
--

*출력*
-----
HASH 224 : 2748b9814be815b8c1c0ac80789cd16f84d3d725b944a9bee7a13cc8
HASH 256 : 9bd8525800c25e5d15132c5503b771d302f801902934b139f00b0710d76485fd
HASH 384 : 663f3b7d43554c70a3e6aea819a76da6dfe8211604ef709148fb3bcf0f136ddfb5d8d03bb2ba1f260f88e97391855ea9
HASH 512 : 12aa8a5a125c9177d83da90b69d182ee220eaf22584120af61c51821e31f9dc8072d95e5cc4b3caec3b19345dbeefd8e1cd407f238f13711ac9965122aa6d1a4
-----

BountyCastle Release : http://www.bouncycastle.org/latest_releases.html
{'fraction_non_alphanumeric': 0.11018310311596531, 'fraction_numerical': 0.18438805011243173, 'mean_word_length': 3.4935064935064934, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2468073', 'n_tokens_mistral': 1811, 'n_tokens_neox': 1654, 'n_words': 223}