본문 바로가기
728x90

java9

[JAVA] RSA 비대칭키 양방향 암호화 구현 비대칭키 양방향 암호화에 대해서 글을 정리한 적이 있다. 이번에는 Java에서 RSA를 구현해보고 테스트도 진행해보고자 한다. 1. 비대칭키 PublicKey, PrivateKey 생성 private static final int KEY_SIZE = 2048; private Pair createKeyPair() throws NoSuchAlgorithmException { SecureRandom secureRandom = new SecureRandom(); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(KEY_SIZE, secureRandom); KeyPair keyPair.. 2022. 12. 2.
순열 (Permutation) 지인이 코딩 문제를 공유해줬는데 순열에 대한 알고리즘 문제가 있어서 다시 한번 리마인드 할 겸 글로 정리 한번 해보려고 한다. 순열 알고리즘 이란? N개의 서로 다른 값이 주어지고 값 중에서 R개의 숫자를 뽑아서 정렬하는 알고리즘이다. 이 내용은 다른 알고리즘과 중복되긴 하는데 순열에서 중요한 건 정렬이 된다는 것이고 순서가 존재한다는 점이다. 예를 들어 [1, 2] =! [2, 1]은 다른 값이기에 둘 다 카운팅이 된다. 주어진 값 = [1, 2, 3] 이라면 순열을 하여 2개 뽑아낸 값은 [1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, 2] 이렇게 총 6개가 나와야 한다는 것이다. 자바 코드 구현 @Test public void 순열() { int r = 2; int[] inpu.. 2022. 11. 28.
[Java] 0.1 + 0.2 = 0.3이 아니다! @Test public void doubleTest() { Double a = 0.1; Double b = 0.2; Double c = 0.3; Assert.assertEquals(a + b, c, 0.0); } java.lang.AssertionError: Expected : 0.3 Actual : 0.30000000000000004 Double Type인 a 변수값은 0.1, b 변수값은 0.2를 대입하고 a + b를 더했다. 0.1 + 0.2 = 0.3은 당연한 결과이다. 하지만 프로그래밍에서는 당연하지 않는 결과가 나오게 된다. 0.3의 결과를 원하지만 실제로는 0.30000000000000004의 값이 나왔기 때문이다. 어떻게 된걸까? 간단하게 설명부터 하자면 0.1을 이진법으로 변환하게 되면 .. 2022. 11. 11.
[Spring] Javers로 자바 객체 비교 쉽게 하자! Javers는 자바 객체 비교 라이브러리이며 비교할 두 객체 변수들의 Diff 정보를 간단하게 얻을 수 있다. Javers는 많은 기능들을 지원하는 것 같다 RDB Repository의 Entity의 변경사항을 인지할 수도 있고 직접 두 객체를 compare 함수를 이용하여 비교 정도를 획득할 수도 있다. 이번 포스팅은 Javers의 Compare 함수를 이용하여 두 객체 비교 하는 방법에 대해 기록해보도록 하자. Javers Document 참고 Gradle Dependancies implementation group: 'org.javers', name: 'javers-core', version: '6.7.0' Data Class public class Person { private String nam.. 2022. 11. 11.
300x250