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
*/
반응형
'DEV > JAVA&Android' 카테고리의 다른 글
[Android] Android Studio 3.0에서 Layout Preview 오류 (0) | 2017.12.21 |
---|---|
[Android] 다이얼로그 소프트키보드 열지 않기 (0) | 2017.11.16 |
[Android] 키보드 숨기기, 키보드 자동실행 막기 (0) | 2017.10.20 |
[안드로이드] EditText InputType 속성값 종류 (0) | 2017.07.07 |
Android Studio 2.2이상 Layout Preview 한글 깨짐 현상 해결 방법 (0) | 2017.06.15 |