Study/Java
-
[정보보호개론] Java로 RSA 암호문 해독하기 (RSA 복호화)Study/Java 2021. 4. 7. 14:14
문제 RSA로 암호화된 값이 있습니다. n=3173174654383 e=65537 C=2487688703 이 값들을 가지고 Plain Text와 d값을 구하는 것이 문제입니다. 문제풀이방법 RSA 암호문을 복호화하기 위해서는 M=C^d mod N의 공식을 사용해야합니다. 다시말해, M값을 구하기 위해서는 C, d, N을 알아야 한다는 것 입니다. 일단 문제에서 N과 C를 알려줬으므로 d를 구해야합니다. d는 ed=1 mod Phi를 활용하면 구할 수 있으므로 Phi 를 알아야 하며, Phi는 N 을 활용하여 알 수 있습니다. N=p*q 이므로 p와 q 값을 구해줍니다. 이때 p와 q는 소인수 분해로 나오는 수(소수)여야 합니다. 반복문을 활용하여 N을 1부터 3173174654383까지 나눠줍니다. 나머..
-
[정보보호개론] Java로 AES 복호화 프로그램 만들기Study/Java 2021. 4. 2. 15:16
문제 1. BASE64로 인코딩된 key값, iv값, 암호화된 문자열 ciphertext가 주어졌습니다. 2. 주어진 코드 key : 8iE3bf1se6N76HGPP8S0Xw== iv : cHml3oX848/0uBwDJtChOA== ciphertext : QDr9NZNG9Bgc3TTnfRuqjjzf/kVSYwbP7F9mR4GQZ/IneIh7HTc/xnwzEeVBcH3pPlIbLFySKZruedJc9X87CGNDJ1f2Dat8BR3Ypbei5Q42xc306/AkSuGsjfqbX9/ELxmdKn7MyvY/Jbc0v0AJHV6odgNzygKRRrFJcUIF/50= 3. 암호화 모드는 AES/CBC/PKCS5PADDING 입니다. 4. 위 정보를 가지고 Plain Text를 구해야 합니다. 문제풀이방법 이 문제..
-
[Java] 클래스 메소드 vs 인스턴스 메소드 (자바 static 관련)Study/Java 2021. 2. 23. 19:33
자바의 메소드는 두 가지 종류를 가지고 있습니다. 1. 인스턴스 메소드 (비정적 메소드) 2. 클래스 메소드 (정적 메소드) 인스턴스 메소드는 비정적 메소드이므로 non-static 메소드로 선언된 메소드이고 클래스메소드는 정적 메소드이므로 static을 붙여서 선언된 메소드입니다. 변수나 메소드 앞에 static이 붙는다면 이 메소드는 어디서든 부를 수 있게 됩니다. 그리고 해당 인스턴스와 상관없이 독자적으로 클래스 외부에서 활동하고 있습니다. 자바의 시작 지점에서 public static void main...으로 시작하는 것도 이와 같은 이유입니다. 최소한 자바에서 정적으로 시작점을 가지고 있어야 하기 때문에 static으로 설정이 되어있는 것입니다. 즉, 메인 메소드는 클래스와 상관없는 외부 메소..
-
[Java] main메소드에서 "Cannot make a static reference to the non-static method run() from the type main" 오류 해결법Study/Java 2020. 12. 8. 16:45
자바를 처음 시작하시는 분들이 자주 범하는 오류입니다. public class main { public static void main(String[] args) { run(); } private void run() { System.out.println("Leirbag"); } } 이 코드에서 실행을 하게되면 다음과 같은 오류가 발생합니다. Cannot make a static reference to the non-static method run() from the type main 이렇게 run()을 호출할 수 없다는 경고문이 뜨게 됩니다. 이유가 무엇일까요? main메소드는 static 메소드로써, 클래스 객체 외부에 존재하는 메소드이기 때문입니다. 자바 프로그램이 처음 시작할 부분을 정해야 하는데 그..
-
[Java] 자바 스윙 JTextField 꾸미기Study/Java 2020. 12. 8. 16:25
public class RoundJTextField extends JTextField { private Shape shape; public RoundJTextField(int size) { super(size); setOpaque(false); // As suggested by @AVD in comment. } protected void paintComponent(Graphics g) { g.setColor(getBackground()); g.fillRoundRect(0, 0, getWidth()-1, getHeight()-1, 15, 15); super.paintComponent(g); } protected void paintBorder(Graphics g) { g.setColor(getForegrou..
-
[Java] 자바 스윙 JButton 꾸미기 (둥근 버튼)Study/Java 2020. 11. 21. 00:51
Java Swing을 하다보면 JButton을 사용할 때가 많습니다. JBtutton을 이용하여 버튼을 만들곤 하는데 자바에서 기본으로 지원하는 버튼의 모양이 맘에 들지 않는다면 아래 클래스를 활용하여 버튼을 개선할 수 있습니다. //버튼 디자인 public class RoundedButton extends JButton { public RoundedButton() { super(); decorate(); } public RoundedButton(String text) { super(text); decorate(); } public RoundedButton(Action action) { super(action); decorate(); } public RoundedButton(Icon icon) { sup..