2015년 6월 30일 화요일

공인인증서 본인식별 java 코드

다음과 같은 코드를 사용하여 vid 값을 계산한 후 인증서에서 읽어온 vid 값과 비교하여 본인 식별을 할 수 있다.

인자 vid, r, hashType은 인증서에서 읽어온 정보이고 idn은 사용자로 부터 입력받은 값이다.


public static boolean checkVidIntegrity(byte[] vid, String idn, byte[] r, String hashType ) {
            try {
                    DERSequence derSequence = new DERSequence(new ASN1Encodable[] {new DERPrintableString(idn.getBytes()), new DERBitString(r)});

                    byte[] content = derSequence.getDEREncoded();

                    MessageDigest md2 = MessageDigest.getInstance(hashType);
                    md2.update(content);
                    byte[] h2 = md2.digest();
                    md2.reset();
                    md2.update(h2);
                    byte[] vidp2 = md2.digest();

                    System.out.println("frodo core: idn = "+ idn);
                    System.out.println("frodo core: compare vid = " + toHex(vid) + " with vid' = " + toHex(vidp2));

                    return Arrays.equals(vid, vidp2);
            } catch (NoSuchAlgorithmException e) {
                    e.printStackTrace();
                    return false;
            }
}

댓글 없음:

댓글 쓰기

정리: A Few Hidden Treasures in Java 8

유투브의 다음 영상에서 얘기한 내용들을 정리해본다. https://www.youtube.com/watch?v=GphO9fWhlAg&list=WL&index=10 영상에 등장하는 인도인 강사가 나오는 강의를 몇 개 상당히 재밌게 본 ...