이번에 django에서 소셜 로그인 구현을 해보도록 하겠습니다. 우선 pip install django-allauth를 설치해줍니다. (업데이트가 필요하다고 하면 하시면 됩니다.) 그리고 setting.py에 다음을 추가합니다. 우선은 제일 많이 이용하는 구글 로그인만 구현해봅시다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.sites', #추가 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'siteapp.apps.SiteappConfig', ..
github에 자료를 올리다보면 로그기록과 같이 불필요한 경우나, db 와 같이 공개되면 안되는 것들도 존재한다. 이러한 것들을 하나하나 제외하지 않고 미리 얘네들은 안 올릴거에요 하는 것이 gitignore이다. 방법은 간단하다. window 기준으로 bash shell을 이용해 다음과 같이 하면 된다. git init git touch .gitignore 이후 vi를 이용해 내용을 추가하여도 되고, .gitignore파일을 text 편집기와 연결하여 사용해도 된다. (ex 메모장) gitignore 파일에 어떤걸 추가하면 되는지는 www.toptal.com/developers/gitignore 여기에 있는 내용을 복붙하면 된다. gitignore.io Create useful .gitignore fi..
www.acmicpc.net/problem/1963 1963번: 소수 경로 소수를 유난히도 좋아하는 창영이는 게임 아이디 비밀번호를 4자리 ‘소수’로 정해놓았다. 어느 날 창영이는 친한 친구와 대화를 나누었는데: “이제 슬슬 비번 바꿀 때도 됐잖아” “응 지금 www.acmicpc.net 간단한 bfs 문제이지만, 초기화를 이상하게 해서 푸는데 20분, 에러 찾는데 1시간이 걸린 문제입니다. 너무 화가 납니다 ㅎㅎㅎ 4자리 소수를 한 자리씩 바꿀 수 있고, 이 바꾼 수 또한 소수여야합니다. 그렇게 한 자리씩 바꾼 수가 목표한 수가 될 때까지 수를 바꾼 횟수의 최솟값을 구하면 됩니다. 에라토스테네스 체를 이용해 1000~9999까지 소수들을 미리 구해준 뒤, bfs를 이용해 각 자리별로 0~9까지로 바꾼 ..
SHA-1,2,3까지 현재 나왔다. MD5가 깨지면서 대체된 해쉬 함수 기반 암호이다. 우선 해쉬 함수는 임의의 길이의 input을 넣어도 일정 길이의 output이 나오는 함수를 의미한다. 대표적인 예로 modulo 연산이 존재한다. Z_10에서 input이 무엇이더라도 mod 10 연산에 의해 0~9 값 중 하나로 결정된다. MD는 깨졌지만 SHA-1의 기반이 된 암호이므로 살펴보자. 기본 MD 함수 구조는 다음과 같다. MD4 : f : {0,1}^128 x {0,1}^512 -> {0,1}^128, h_i = f(h_(i-1), m_i) 의 구조를 가진다. 48step(3rounds)를 이룬다. MD5: f : {0,1}^128 x {0,1}^512 -> {0,1}^128, h_i = f(h_(i..
Integrity의 뜻은 다음과 같다. If Alice need to be sure that the contents of her documents will not be changed, she can put her fingerprint at the bottom of the document. 기본적으로 hash 함수에 대해 다루게 되는데 hash를 이용한 암호인 sha-2 등은 뒤에서 다루겠다. hash 함수가 지녀야할 조건 3가지는 다음과 같다. 1. Preimage Resistance 2. Second Preimage Resistance 3. Collision Resistance 1. Preimage Resistance 2. Second Preimage Resistance 3. Collision Resi..