본문 바로가기

DEV/JAVA&Android

SHA3 암호화

   bouncyCastle 라이브러리를 사용한 예제입니다.

   설치 : http://www.bouncycastle.org/latest_releases.html


MIT License의 라이브러리이며 SHA3 이외의 다른 암호화도 지원하고 있다.

CryptoSHA3의 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
*/


반응형