7월, 2010의 게시물 표시

jsp JSTL

주의사항 1. 태그 이름과 문법 TLD에는 속성이 필수인지 옵션 사항인지, 태크가 몸체를 가질 수 있는지, 가진다면 그 안에 들어갈 수 있는 하위 태그는 무었이 있는지, 태그 안에 들어가는 속성 타입은 어떻게 되는지, 속성에 표현식을 쓸 수 있는지 아니면 그냥 문자열만 써야 하는지 등   2. 라이브러리 URI taglib지시자에 바로 이 URI값을 사용합니다. 컨테이너는 이 값으로 웹 어플리케이션에 있는 여러 TLD파일 가운데서 정확한 것으로 찾아갑니다.   TLD <tlib-version></tlib-version> 태그 라이프러리 버전을 선언하는 곳 <short-name></short-name> <function> <name></name> <function-class></function-class> <function-signature></function-signature> </function> <uri></uri> taglib지시자에서 사용할 자신을 나타내는 유일한 이름   <tag> <description></description> <name></name> 태그안에 쓸 이름 <tag-class></tag-class> jsp에서 태그를 사용한 경우 컨테이너가 호출할 클래스 <body-content></body-content> 태그의 몸체 empty : 몸체 없음, scriptless :스크립팅은 올 수 없음, tagdependent : 문자를 무조건 텍스트로 취급, JSP : jsp 안에 들어 갈 수 있ㄴ은 것이라면 무엇이든지 가능. <attribute> 태그의 속성이 있다면 속성을 정의 하는 곳 <name>&

보안과 암호학의 모든것

1. 비밀키 암호화 1.1 자물쇠와 열쇠 암호화란, 키를 모르고는 절대 비밀 메시지를 알아 낼 수 없는 자물쇠와 그 자물쇠를 푸는 키 둘 다를 의미한다. 암호 사용자란, 메시지의 원래 의미를 숨기려고 암호를 사용하는 사람들이다. 1.2 치환법과 시저암호 암호: 어떤 문장을 암호화 하거나 복호화 하는 방법이다. 평문: 암호화되지 않는 문장 암호문: 암호화된 문장 암호화: 평문을 암호문으로 바꾸는 과정 복호화: 암호문을 평문으로 바꾸는 과정 1.7 기밀성은 비밀키를 공유한 사람들만 동일한 비밀키로 암호화한 파일을 복호화할 수 있다는 것에 대한 보증이다. 인증은 상대방의 신원에 대한 보증이다. 무결성: 파일이 전송도중에 변경되지 않았다는 것에 대한 보증 MAC (Message Authentication Code) 부인방지: 메시지를 보내는 사람이 파일을 보내지 않고도 파일을 보냈다고 부인할 수 없다는 것에 대한 보증이다. 1.8 비밀키 교환의 문제점들 공개키 암호 알고리즘 Diffie - Hellman - Merkle 키 교환법 비대칭키 : 암호키와 복호화 키 분리 2.10 공개키를 사용하면서 얻는 기밀성 공개키로 암호화된 메시지는 공개키에 관계된 개인키로만 복호화할 수 있다. 공개키 알고리즘의 아이디어는 해커가 공개키로 복호화하는 것이 불가능하며, 개인키를 알아내기도 힘들다는 것이다. 공개키는 숨길 필요가 없고, 분배하기 편하기 때문에 비밀키 알고리즘의 방법보다 키 분배 문제가 쉽게 해결된다. 2.11 공개키를 만드는 수학적 트릭 공개키 암호 알고리즘은 곱셈에 대한 인버스라는 간단한 수학적 개념을 토대로 만들어진다. 대부분의 공개키 암호 시스템은 역으로 계산하는 것이 어렵다는 것을 이용하여 보안성을 강화 시킨다. 2.12 개인키를 사용하여 전자 서명하기 개인키로 암호화 하는 것은 인증, 무결성, 부인 방지 기능을 제공해 준다. RSA의 경우 개인키로 암호화하는 것은 '서명'과 같고, 공개키로 암호화 하는 것은 '서명 확인'과 같다.

java 입출력

1.스트림 바이트, 숫자 - 바이트 스트림 문자, 텍스트 - 문자 스트림 바이트 입출력 InputStream -> Java program -> OutputStream 문자 입출력 Reader ->Java program ->Writer 데이터 싱크 스트림 - 데이터를 근원지에서 직접 읽거나, 목적지에 기록하는 클래스들 데이터 프로세싱 스트림 - 다른 스트림을 이용해서 중간에서 어떤 작업을 수행하는 클래스들 InputStream 추상 클래스 바이트 입력스트림을 위한 가상의 상위 클래스로서 System 클래스의 in 멤버 필드가 InputStream 타입이다. int read() - 입력 스트립에서 한 바이트를 읽어서 리턴한다. 일어오는 값은 바이트인데 리턴 타입은 int 타입으로 선언되어 있다. 읽어온 값은 0~255사이의 값, 더 읽은 값이 없는 경우 -1을 리턴한다. int read(byte[] b, int off, int len) - 입력 스트림에서 len 개의 바이트를 일어서 바이트 배열 b에 저장한다. 배열 b의 off 인덱스에서부터 저장한다. 즉 첫 번째 바이트를 읽어서 b[off]에 저장한다. 더이상 읽을 값이 없는 경우 -1을 리턴한다. int read(byte[] b) - 배열의 크기만큼 읽어온다. 리턴 값은 읽은 바이트 수이다. 더 이상 읽을 값이 없는 경우에는 -1을 리턴한다. PrintStream 클래스 PrintStream(OutputStream out, boolean autoFlush) - PrintStream 객체를 생성한다. autoFlush 값이 true이면 println() 메소드가 호출되거나, print("\n")이 호출되면 바이트 버퍼를 자동적으로 플러쉬한다. PrintStream(OutputSteam out) - autoFlush가 false인 PrintStream객체를 생성한다. void close() - 스트림을 닫는다. void flush() - 버퍼 내용을 플러쉬한다. void p