2020-11-04 TIL

1 minute read

JDBC

데이터베이스에 암호를 저장할 때

  • 암호를 인코딩해서 저장해야 한다.
  • 모든 데이터베이스에서 암호를 인코딩하는 함수를 제공한다.
    • 암호화 encrypte
    • 복호화 decrypte
    • 암호는 복호화가 안 되어야 한다.
    • 관리자도 몰라야 한다.
  • 마리아db에서 제공하는 함수를 사용하면
MariaDB [studydb]> select password('1111');
+-------------------------------------------+
| password('1111')                          |
+-------------------------------------------+
| *89C6B530AA78695E257E55D63C00A6EC9AD3E977 |
+-------------------------------------------+
1 row in set (0.000 sec)

이렇게 나온다.

로그인 처리

  • 암호를 비교했을 때 리턴 값이 1인 것을 보고 같은 값임을 확인한다.
MariaDB [studydb]> update pms_member set password=password('1111');
Query OK, 5 rows affected (0.011 sec)
Rows matched: 5  Changed: 5  Warnings: 0

MariaDB [studydb]> select * from pms_member;
+----+------+------------+-------------------------------------------+-------+------+---------------------+
| no | name | email      | password                                  | photo | tel  | cdt                 |
+----+------+------------+-------------------------------------------+-------+------+---------------------+
|  1 | aa   | aa         | *89C6B530AA78695E257E55D63C00A6EC9AD3E977 | aa    | aa   | 2020-10-30 16:33:27 |
|  2 | b    | b          | *89C6B530AA78695E257E55D63C00A6EC9AD3E977 | b     | b    | 2020-10-30 16:56:16 |
|  4 | c    | c          | *89C6B530AA78695E257E55D63C00A6EC9AD3E977 | c     | c    | 2020-10-30 16:59:55 |
|  5 | d    | d@test.com | *89C6B530AA78695E257E55D63C00A6EC9AD3E977 | d     | d    | 2020-11-02 13:01:14 |
|  6 | e    | e@test.com | *89C6B530AA78695E257E55D63C00A6EC9AD3E977 | e     | e    | 2020-11-02 13:01:26 |
+----+------+------------+-------------------------------------------+-------+------+---------------------+
5 rows in set (0.000 sec)

MariaDB [studydb]> select count(*) from pms_member where email='e@test.com' and password=password('1111');
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.005 sec)

암호화

  • 개인키(private key) : 암호화 된 자료를 풀 때 쓰는 열쇠
  • 공개키(public key) : 자료를 암호화 할 때 쓰는 열쇠
  • 공개키로 잠그고 개인키로 여는 것을 비대칭 암호화라고 한다.

List 와 forEach

  • forEach 를 쓰면 객체에 저장된 데이터를 하나하나 꺼내서 반복문을 돌려준다.
  • package com.eomcs.oop.ex12의 Exam0910~

Categories:

Updated: