전체 게시글376 [BaekJoon] 백준 알고리즘 1759번 / 암호 만들기 / 백트래킹(DFS) / Python import sys sys.stdin = open( "input.txt", "r") l, c = map(int, input().split()) bet = list(map(str, input().split())) bet.sort() #알파벳 오름차순 정렬 vowels = ['a', 'e', 'i', 'o', 'u'] ans = [] def check(ans): mo = 0 #모음 개수 ja = 0 #자음 개수 for i in range(l): #개수 계산 if ans[i] in vowels: mo += 1 else: ja += 1 if mo >= 1 and ja >= 2: #자음모음 개수 충족 return True else: return False def func(j): if len(ans) is l: i.. 2023. 3. 7. [암호기술] 인증 시스템이 포함된 SSL 통신 및 인증서 검증원리 기본용어 CA (Certificate Authority) 디지털 인증서를 제공하는 공인된 기업 (Certificate Authority 혹은 Root Certificate) 대표적인 CA 서비스 제공 기업과 시장점유율 Symantec (VeriSign, Thawte, Geotrust) with 42.9% market share Comodo with 26% GoDaddy with 14% GlobalSign with 7.7% RA (Registration Authority) 신원확인, 고객데이터 유지 등 인증기관의 입증을 대행하는 등록기관 사용자의 인증서 발급 요청을 등로하고, 신원확인 기능을 수행 SSL 인증서의 서비스 보증방법 웹브라우저가 서버에 접속하면 서버는 제일 먼저 인증서를 제공한다. 브라우저는 .. 2023. 3. 7. [암호기술] 대칭키의 작동원리 / 비대칭키의 작동원리 대칭키의 원문, 암호문, 키, 복호화, 대칭키 원문(평문)을 암호문으로 만드는 것을 암호화 라고 한다. 암호문을 만드는 정보를 키(Key) 라고 한다. 암호문을 해당 키를 이용해서 원문으로 만드는 것을 복호화 라고 한다. 암호화와 복호화에 사용하는 키가 같다면 이를 대칭키라고 부른다. 대칭키의 암호화 원리 암호화키와 원문을 바이너리 형태로 변형한 후 배타적 논리합(XOR) 연산에 따라 암호화 & 복호화 를 하게된다. 위와 같은 원리로 암호화 키의 길이, 키의 사용횟수등의 제약이 없다면 복잡도를 무한히 증가시켜 거의 완벽한 암호화를 할 수 있으나 복호화 하는데 비용(시간소모)이 계속 커진다면 사용할 수가 없을 것이기 때문에 일정한 규격에 의한 암호화를 고려해야 한다. 이러한 암호화방식은 양자연산이 가능한 .. 2023. 3. 7. [암호기술] Hash를 알아야 블록체인이 보인다 Hash? 단방향 함수이고, 입력과 상관없이 길이가 일정하게 변경한다. 대표적인 알고리즘으로는 MD-5와 SHA-1이 있다.(여기서 단방향 암호화 기법은 암호화는 수행하지만 복호화는 불가능한 알고리즘을 말한다.) 아래는 단방향 해시함수인 MD-5을 통해 해시를 생성할 수 있는 사이트이다. https://www.md5hashgenerator.com/ MD5 Hash Generator A tool for creating an MD5 hash from a string. Use this fast, free tool to create an MD5 hash from a string. www.md5hashgenerator.com 블록체인? 위 사진을 보자. 블록 #0번을 하나의 덩어리로 묶으면 Hash값이 결과가 도.. 2023. 3. 7. [BaekJoon] 백준 알고리즘 14889번 / 스타트와 링크 / 백트래킹(DFS) / Python import sys sys.stdin = open( "input.txt", "r") def dfs(depth, idx): global minValue team1, team2 = 0, 0 if (depth == N//2): for i in range(N): for j in range(N): if chk[i] == True and chk[j] == True: team1 += graph[i][j] elif not chk[i] and not chk[j]: team2 += graph[i][j] minValue = min( minValue, abs( team1 - team2 ) ) return for i in range(idx, N): if not ( chk[i] == True ): chk[i] = True dfs.. 2023. 3. 7. [Spring] @SessionAttribute / null 업데이트 방지 / 세션에 저장해서 사용하기 @SessionAttribute는 수정 작업을 처리할 때, 유용하게 사용할 수 있는 어노테이션이다. 예를들어, 상세 화면에서 게시글을 수정한다고 가정해보자. 사용자가 수정한 제목과 내용 정보 등을 가지고 "/update"와 같은 요청을 한다. 이때 사용자가 입력한 정보 외에 작성자 정보는 전달되지 않는다. 즉, Command 객체인 BoardTO에 writer 정보가 저장되지 않는다. 개발자에 따라 다르겠지만, 만약 작성자 컬럼까지 수정되도록 돼있다면 작성자(writer) 파라미터 정보가 전달되지 않으므로 null로 수정될 것이다. update board set title = ?, writer = ?, content = ? where seq = ? 이런 문제를 해결하기 위해서 사용된다. @Controll.. 2023. 3. 6. 이전 1 ··· 19 20 21 22 23 24 25 ··· 63 다음