java/jca
-
블록 암호를 사용한 암/복호화java/jca 2019. 6. 24. 16:21
암호화와 복호화를 하기 위해서는 비밀키가 필요하다. JCA에서 제공하는 키관련 클래스를 사용해서 비밀키를 생성하는 방법 1. KeyGenerator 클래스를 사용한 비밀키 생성 KeyGenerator(javax.crypto.KeyGenerator) 클래스는 비밀키를 생성하는 기능을 제공한다. KeyGenerator 클래스의 getInstance() 메소드를 호출하여 주어진 알고리즘에 해당하는 인스턴스를 생성한 다음 , generatorKey() 메소드로 새로운 비밀키를 생성한다. init() 메소드를 호출하면 키의 크기. 사용할 난수 생성기, 알고리즘에 필요한 파라미터가 초기화된다. package jce; import java.security.NoSuchAlgorithmException; import j..
-
Runnable을 활용한 파일의 해시값 계산java/jca 2019. 6. 24. 15:13
package jce; import java.io.FileInputStream; import java.security.DigestInputStream; import java.security.MessageDigest; public class InstanceCallbackDigest implements Runnable{ private String filename; private InstanceCallbackDigestUserInterface callback; public InstanceCallbackDigest(String filename, InstanceCallbackDigestUserInterface callback) { this.filename = filename; this.callback = call..
-
MessageDigest 클래스를 사용한 해시값 생성java/jca 2019. 6. 11. 14:34
package jce; import java.nio.charset.Charset; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MessageDigestExample { public static void main(String[] args) throws NoSuchAlgorithmException { Charset charset = Charset.forName("UTF-8"); String plainText = "오"; MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(plainText.getBytes()); by..
-
SecureRandom 사용하기java/jca 2019. 6. 5. 08:49
package jce; import java.security.NoSuchAlgorithmException; import java.util.FormattableFlags; import java.util.Formatter; public class SecureRandom { public static void main(String[] args) throws NoSuchAlgorithmException { java.security.SecureRandom random = java.security.SecureRandom.getInstance("SHA1PRNG"); byte bytes [] = new byte[16]; random.nextBytes(bytes); System.out.println(bytesToHexSt..
-
Bouncy Castle Provider 등록하기java/jca 2019. 6. 4. 09:04
BouncyCastle 라이브러리 BuildPath 추가 후 Security.addProvider() 로 프로바이더를 추가한다. package jce; import java.security.Provider; import java.security.Security; import org.bouncycastle.jce.provider.BouncyCastleProvider; public class BCWithApplicationTest { public static void main(String[] args) { //애플리케이션 실행시 BouncyCalstelProvider를 추가한다. Security.addProvider(new BouncyCastleProvider()); Provider provider = Se..
-
자바 대칭키 암호화 복호화 예제java/jca 2019. 4. 26. 16:41
public Key getAESKey() throws Exception { String iv; Key keySpec; String key = "1234567890123456"; iv = key.substring(0, 16); byte[] keyBytes = new byte[16]; byte[] b = key.getBytes("UTF-8"); int len = b.length; if (len > keyBytes.length) { len = keyBytes.length; } System.arraycopy(b, 0, keyBytes, 0, len); keySpec = new SecretKeySpec(keyBytes, "AES"); return keySpec; } // 암호화 public String encAE..