1.암호화된 비밀번호를 해독할 때는 해시 함수를 사용하거나 salt등으로 암호화한 다음 해시값만을 사용하기 때문에 공격자는 해독할 방법을 찾아야 헀는데
이를 위한 방법으로 무차별대입, 레인보우 테이블, 키 입수, 알고리즘 취약부분 찾기 등의 방식을 사용한다.
무차별 대입은 해시 함수를 사용해 후보를 해쉬하한 다음 무차별 대입하는 방식으로 진행된다.
레인보우 테이블은 무차별 대입에 사용할 후보군을 만든 테이블로
대소문자와 1~8로 만들 수 있는 모든 해시 기준으로 1050GB의 용량을 차지할 정도로 거대한 용량을 차지한다.
키 입수는 생성 함수 자체를 입수한 다음 키를 이용해 복호화하는 방식이다.
알고리즘의 취약부분은 예전에는 검증되지 않는 약점이 있었으나
일반적 암호 알고리즘의 취약부분은 거의 찾을 수 없다.
하지만 독자적 구현의 경우 고려되지 않은 취약점이 발견될 수 있다.
2.클릭 재킹은 원하는 동작을 요구하기 위해
사용자에게 다른 이미지를 보여주는 방식이다.
본인은 상품을 요청한다고 생각하며 개인정보를 기입할 수도 있고
취소가 확인으로 변경되어 있을 수 있는 등 원하는 기능을 유도할 수 있다.
3.Dos 공격은 Denial of Service attack의 약자로 서비스 중지 공격이다.
부하를 걸어 서비스를 정지시키거나 취약성을 공격해 정지시키는데
여러 대의 컴퓨터로 공격하는 경우 DDos라고도 불리며
일반 사용자와 구별이 어렵기 때문에 방어하기 어렵다는 특징이 있다.
4.백도어의 경우 절차를 밟지 않고 이용하는 뒷문 느낌으로
제한을 초과하는 권한을 가지거나 기능을 하는 특징을 가지고 있다.
개발 단계에 디버그용으로 추가되거나 개발자가 몰래 이용하려고 추가했거나 공격자가 백도어를 몰래 설치하는 방식등으로 생성된다.
실제로 모든 기능 구현 전 확인을 위해
각각의 페이지들의 주소는 만들었지만 링크는 만들지 않았고
개발이 다 되지 않고 배포되는 경우 링크로 직접입력시 들어가진다거나
로그인과 연계된 기능들 테스트를 먼저 하기 위해
로그인/로그아웃 버튼을 헤더에 추가해 진행하는 방식이 생각난다.
5,이진탐색트리는 이진탐색과 연길리스트의 장점을 합친 트리로
탐색, 추가, 삭제등을 빠르게 처리할 수 있다.
다만 균형있게 나눠지지 않은 경우 최대 n개를 n번만에 찾을 수 있기 때문에
시간복잡도는 최대 O(N)이다.
특징은 각 노드의 자식은 2개 이하이며
작은 숫자는 왼쪽의 자식노드로 보내고
큰 숫자는 오른쪽의 자식노드로 보내는 방식으로 이진탐색을 구현했다.
또한 중복은 각 노드에 카운팅 하는 방식으로 진행된다.(중복이 없거나)
값의 추가는 트리의 특징처럼 좌, 우로 구분해 내려가지만
값의 삭제의 경우에는 자식이 없는 경우 삭제하고
자식이 1개면 자식을 올리며
자식이 2개라면 오른쪽 자식 노드중 가장 작은 값 또는
왼쪽 자식 노드 중 가장 큰 값을 탐색해 올려야 한다.
(작은 것 왼쪽 큰것 오른쪽 특성 유지를 위해)
(1).백준 3058 짝수를 찾아라는 여러개의 케이스가 주어지는데
각 케이스마다 최소 1개 이상의 짝수가 주어진 7개의 숫자로 구성된 배열에서
짝수의 합과 제일 작은 짝수의 값을 한 줄에 포함시킨 다음
각 테스트케이스마다 줄바꿈으로 표기하는 문제였다.
filter로 짝수를 찾은 다음 sort로 정렬했는데
filter를 먼저 해서 시간복잡도를 고려했고
정렬된 0번째 값을 최소값에 넣어주고
전체를 sum에 추가했다.(reduce 가능)
let input = `2
1 2 3 4 5 6 7
13 78 39 42 54 93 86`.split('\n')
let result = []
for(let i = 1 ; i < input.length ; i++){
let arr = input[i].split(' ').map(Number).filter(el => el%2 === 0).sort((a,b) => a-b)
let sum = 0
let min = arr[0]
for(let j = 0 ; j < arr.length ; j++){
sum += arr[j]
}
result.push(`${sum} ${min}`)
}
console.log(result.join('\n'))

'회고' 카테고리의 다른 글
| [취업준비일지] - 31 (0) | 2022.11.20 |
|---|---|
| [취업준비일지] - 30 (0) | 2022.11.19 |
| [취업준비일지] - 28 (0) | 2022.11.17 |
| [취업준비일지] - 27 (1) | 2022.11.16 |
| [취업준비일지] - 26 (0) | 2022.11.15 |
