본문 바로가기

Programming

(10)
가상화(Virtualization) 가상화(Virtualization) 란 가상화는 컴퓨터의 자원을 가상으로 분할하거나 모방하는 기술을 의미한다. 가상화 기술을 사용하면 하나의 물리적 서버에서 여러 운영체제와 애플리케이션을 실행할 수 있다. 다음과 같은 상황을 가정하자. 각각 용도가 다른 3개의 물리 서버(메일 서버, 웹 서버, 내부 레거시 서버)가 있다. 각 서버는 잠재적인 실행 용량의 일부에 불과한 30% 용량만 사용하고 있다. 그러나 내부 운영을 위해서는 레거시 애플리케이션이 계속 필요하므로 레거시 어플리케이션과 이를 호스팅하는 세 번째 서버를 유지해야 한다. 이런 상황에서 전통적인 서버 구성방식은 위와 같다. 한 개의 서버에 한 개의 운영체제와 한 개의 태스크 형태로 구성한다. 하지만 가상화 기술을 사용하면 서버를 아래와 같이 구성..
암호화 알고리즘(MD5, SHA) 회원가입 기능을 구현할 때 사용자의 PW를 평문으로 저장한다면 보안상 큰 문제가 발생한다. 이를 막기 위해서는 사용자의 PW를 암호화해 저장해야만 한다. 오늘은 프로그램을 짤 때 필수적으로 사용되는 암호화 알고리즘에 대해 간단히 알아보고자 한다. 단방향 해시 함수 해시 함수는 입력 값을 문자와 숫자를 임의로 나열한 일정한 길이의 다이제스트(Digest)형태로 변환시킨다. 여기서 다이제스트란, 해시함수를 통해 생성된 해시 값을 의미한다. 해시 함수는 단방향 알고리즘 이므로 암호화는 가능하지만 복호화는 불가능하여 원본을 알 수 없다. 이와 같은 이유로 패스워드를 바로 데이터베이스에 저장하지 않고 단방향 암호화된 다이제스트를 저장하는 방식이 보편화되었다. 대표적인 단방향 해시 함수로는 MD5와 SHA가 있다...