반응형

전체 글 226

[Python] Closure 및 Decorator

1). Closure 중첩함수가 부모함수의 변수나 정보를 닫아놓고 사용하는것 부모함수는 내부함수를 리턴하는 방식으로 사용 내부 함수에 직접적인 접근 불가능 설명 : cals() 부모함수에 2를 넣어 주면, 부모함수의 파라미터 n을 자식함수의 n에 대입시켜 자식함수를 return한다. 부모함수를 변수에 담아 사용할때는 부모함수의 파라미터를 포함한 자식함수가 담기게 된다. 그 변수에 파라미터를 넣어주어 호출하면 자식함수의 파라미터에 변수파라미터가 담기게 되어 실행된다. def cals(n): def sum(digit): return digit + n return sum nth = cals(2) nth(2) ==> 4 2). Decorator 다른 함수에 함수를 적용하여 실행하는 방식 def decorator..

[Python] 기초문법 - 함수

일반 사용법 def add(a, b): result = a + b return result a = add(3, 4) print(a) ==> 7 add(a=3, b=4) => 변수를 따로 지정하여 사용할수있다. ==> 7 여러개의 입력값을 받는 함수 매개변수 이름 앞에 *을 붙이면 입력값을 전부 모아서 튜플로 만들어 준다 !! 신기하다 def add_test(*args): result = 0 for i in args: result = result + i return result 함수 안에서 선언한 변수의 범위 ** 매우 중요 함수의 매개변수 a는 변수 a와는 다른것!!! 주의하자 a = 1 def vartest(a): a = a +1 vartest(a) print(a) ==> 1 사용하고 싶다면, 결과값을..

[Spring-JSP] AES-256 암호화

AES256을 사용하여 DB에 등록될 사용자 정보를 암/복호화 하는 방법이다. 우리는 보통 사용자의 중요정보(개인정보)를 DataBase에 관리를 하게된다. 이때 암호화를 하지 않은 상태로 관리를 하게 된다면, DataBase 정보 탈취의 우려가 있을 가능성이 있다. 탈취자와 보안을 위해 한번이라도 더 귀찮게 만들어주자. 1). AES256SecureUtil.java 모듈화해서 사용할 수 있도록 만들어두고 사용하자. public class AES256SecureUtil { private static String key = "원하는비밀Key^$%^"; private String iv; private Key keySpec; /** * @desc 초기화 생성자 함수 전역에 설정된 key 값으로 필요 변수 값들..

[Spring-JSP] RSA 암호화

인터넷 서비스에서는 대칭키와 공개키를 이용한 암호화를 다양하게 활용하고 있는데 대표적으로 TLS(Transport Layer Security)라고 불리는 암호 규약이 대표적이며 쉽게 예를 들면 웹 브라우징 시에 사용되는 보안 계층을 말한다. TLS는 기존의 SSL(Secure Sockets Layer)가 표준화되면서 바뀐 이름이며 우리가 인터넷에서 익숙하게 접하는 HTTPS 프로토콜에서 이를 활용하고 있다. 구분목적 Public Key 누구에게나 공개될 수 있음 / 메세지를 보내는 발신자는 공개키를 통해 정보를 암호화 Private Key 수신자는 비밀키를 암호화된 메세지를 복호화 하는데 사용/ 외부에 노출되지 않도록 안전하게 보관해야 함 순서 1. Client 단에서 RSA를 비동기 호출하여 Publi..

[Spring-JSP] SHA-256 / SHA-512 암호화

기본적으로 SHA는 단방향 암호화 알고리즘이다. 보통 비밀번호와 같이 중요정보를 hash화 하여 암호화를 진행한다. 비밀번호는 복호화하여 비교할 필요가 없기때문에... 그래서 DataBase에 암호화된 비밀번호와 사용자가 입력한 비밀번호를 SHA로 암호화 하여 비교하며 사용할 수 있다. 사용법은 매우 간단하다. SHA암호화의 단점이라고는...음... Rainbow Table(해시 함수를 사용하여 변환 가능한 모든 해시 값을 저장시켜 놓은 표)를 사용하여 SHA 알고리즘의 해독이 가능할 수 있다는 점... 다만 엄청난 시간이 필요하다고 한다. 그렇지만 조금더 안전을 기하기위하여 본인은 RSA 암호화 후 SHA암호화를 통해 비밀번호 암호화를 진행하였다. SHA암호화는 기본적으로 256 / 512 두가지를 제..

Paging Module - Java + javascript

Java로 Script Paging Box를 만들어 붙이는 방식으로 만들어보자. Paging에는 여러가지 방식이 있으니, 다음번에는 Ajax로 만들어서 올려놔야지... 1). Mapper.xml start 와 limit를 적용시켜야 한다. 불러올때는 RowNumber로 List의 Numbering을 적용하였다. SELECT * ,ROW_NUMBER() OVER(ORDER BY NOTICE_ID ASC) AS ROWNUM FROM NOTICE n WHERE 1=1 AND n.COMPANY_ID = #{companyId} AND n.DEL_FLAG ='N' ORDER BY n.NOTICE_ID DESC LIMIT #{start}, #{end} 2). Paging Module.Java row의 갯수와 Page..

반응형