java
-
블록 암호를 사용한 암/복호화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 2019. 5. 21. 16:04
필터스트림 inputStream과 outputStream은 단일 바이트나 그룹 바이트를 읽고 쓴다 . 그 바이트를 어떤 형태인지 결정하는 것은 프로그래머역량 데이터 형식으로 변환하기 위해 저수준스트림에 연결가능한 스트림을 제공 reader와 writer로 나뉨 필터 연결하기 필터는 생성자에 의해 스트림에 연결된다. 생성할 때 필터 체인을 쓸 수 있다. 예) InputStream in = new FileInputStream("data.txt"); in = new BufferedInputStream(in); 위와 같은 코드를 다음과 같이 사용 가능하다 -> DataOutputStream dout = new DataOutputStream( new BufferedOutputStream( new FileOutpu..
-
자바로 배우는 리팩토리 입문 0장java 2019. 5. 12. 15:13
1번 그림은 상위 클래스를 가리키는 화살표 2번 그림은 인터페이스를 가리키는 화살표 3번 그림은 집합을 나타내는 화살표 필드 등으로 객체를 포함하는 경우 사용한다. 4번 알고 있다를 뜻하는 화살표 집합을 뜻하는 화살표와 같지만 포함한다를 강조하기보다는 필드에 들어 있음을 강조할 때 사용 5번은 사용한다 필드에 들어 있지 않아도 메서드의 매겨변수나 임시 변수등으로 사용할 가능서이 있는 객체를 가리킴 리팩토링이란? 정의 리팩토링이란 외부에서 보는 프로그램 동작은 바꾸지 않고 프로그램 내부 구조를 개선하는것 - 리팩토링해도 외부에서 보는 프로그램 동작은 변하지 않는다. - 리팩토링하면 프로그램의 내부 구조가 개선된다. 예) 방대한 클래스를 추출하여 잘 분할시키는 것 1. 버그 수정은 리팩토링이 아니다. 버그수..
-
OS 메모리사용량, CPU사용량java 2019. 5. 8. 16:07
https://blog.cafe24.com/2005 SAR(System Activity Reporter) 명령어를 이용한 시스템 관리 1. 일단 CPU와 메모리 사용량을 사용하려면 sar 명령어를 사용해야함 2. sar -help usage: sar { -A [-M] | [-a][-b][-c][-d][-k][-m][-q][-r][-u][-v][-w][-y][-M] } [-s [YYYYMMDD]hh[:mm[:ss]]] [-e [YYYYMMDD]hh[:mm[:ss]]] [-x] [-P processor_id[,...] | ALL] [-f file] [-i seconds] [-o file] [interval [number]] [-X file] [-i seconds] [-o file] [interval [num..