=== 연산자가 두 값이 일치하는지 아닌지 판단하는 데에는 다음과 같은 규칙들을 따른다. 두 값의 타입이 다르다면 두 값은 일치하지 않는다. 두 값이 모두 숫자이고 값이 같다면 두 값은 일치한다. 단, 적어도 하나의 값이 NaN일 경우 두 값은 일치하지 않는다. NaN값은 어느 값과도 일치하지 않는다. 어떤값이 NaN인지 확인하려면 전역 함수인 isNaN()을 사용하라. 두 값이 모두 문자열이고 같은 위치에 정확히 같은 문자들을 갖고 있다면 두 값이 일치한다. 만일 문자열의 길이나 내용이 다른 경우 두 값은 일치하지 않는다. 몇몇 경우 Unicode 표준에서 한 문자열을 인코딩 하는 방법이 두 가지 이상일 수 있음을 유의하라. 하지만 자바스크립트에서 효율성을 위해 엄격히 문자 대 문자 비교의 원칙으로 문자열을 비교하며, 모든 문자열은 비교되기 이전에 '정규 형식'으로 변환되어 있다고 가정한다. 두 값이 모두 불리언 값 true인 경우, 또는 두 값이 모두 불리언 값 false인 경우, 두 값은 일치한다. 두 값이 같은 객체, 배열 또는 함수를 참조할 경우 두 값이 일치한다. 만일 두 값이 서로 별개의 객체를 참조할 경우 두 값은 일치하지 않는다. 설사 두 객체의 프로퍼티가 일치하거나 두 배열의 원소가 일치한다고 하더라고 마찬가지다. 두 값이 모두 null일 경우, 또는 두 값이 모두 undefined일 경우, 두 값은 일치한다. == 연산자가 두 값이 동등한지 아닌지 판단하는 데에는 다음의 규칙들을 따른다. 두 값의 타입이 같은 경우 두 값이 일치하는지 테스트 한다. 두 값이 일치할 경우 그 둘은 동등하다. 두 값이 일치하지 않는 경우 동등하지 않다. 두 값의 타입이 다른 경우라 할지라도 동등할 여지가 있다. 동등함을 확인하는 과정에는 다음 규칙과 타입 변환이 사용된다. 두 값 중에 하나가 null이고 다른 하나가 undefined라면 두 값은 동등하다. 한 값이 숫자이고 다른 하나는문자열이면, 문자열을 숫자로 변환한 ...
FileInputStream FileInputStream(File file) - File 객체를 이용해서 FileInputStream 객체를 새성한다. FileInputStream(FileDescriptor fdObj) - FileDescriptor 객체를 이용해서 FileInputStream 객체를 생성한다. FileInputStream(String name) - 파일 이름을 이용해서 FileInputStream 객체를 생성한다. void close() - 스트림을 닫는다. int read() - 한 바이트를 읽어서 리턴한다. int read(byte[] b, int off, int len) - len개의 바이트를 읽어서 배열 b[off]에서부터 저장한다. 리턴 값은 읽은 바이트 수이다. int read(byte[] b) - 배열의 크기만큼의 바이트를 읽는다. 리턴 값은 읽은 바이트 수이다. FileOutputStream FileOutputSteam(File file) - File 객체를 이용해서 FileOutputStream객체를 생성한다. FileOutputStream(FileDescriptor fdObj) - FileDescriptor 객체를 이용해서 FileOutputStream 객체를 생성한다. FileOutputStream(Stringn name, boolean append) - 파일 이름을 이용해서 FileOutputStream 객체를 생성한다. 생성된 객체는 append값에 따라 기존 파일에 내용을 추가할 것인지, 아닌지를 결정한다. append가 false 이면 기존 내용은 삭제하고 새로운 내용이 기록된다. FileOutputStream(String name) - 디폴트로 append가 false인 FileOutputStream 객체를 생성한다. void close() - 스트림을 닫는다. void write(byte[] b, int off, int len) - 배열 b[off]에서부터 len개의 바이트를 출력한다. void writ...
1. 비밀키 암호화 1.1 자물쇠와 열쇠 암호화란, 키를 모르고는 절대 비밀 메시지를 알아 낼 수 없는 자물쇠와 그 자물쇠를 푸는 키 둘 다를 의미한다. 암호 사용자란, 메시지의 원래 의미를 숨기려고 암호를 사용하는 사람들이다. 1.2 치환법과 시저암호 암호: 어떤 문장을 암호화 하거나 복호화 하는 방법이다. 평문: 암호화되지 않는 문장 암호문: 암호화된 문장 암호화: 평문을 암호문으로 바꾸는 과정 복호화: 암호문을 평문으로 바꾸는 과정 1.7 기밀성은 비밀키를 공유한 사람들만 동일한 비밀키로 암호화한 파일을 복호화할 수 있다는 것에 대한 보증이다. 인증은 상대방의 신원에 대한 보증이다. 무결성: 파일이 전송도중에 변경되지 않았다는 것에 대한 보증 MAC (Message Authentication Code) 부인방지: 메시지를 보내는 사람이 파일을 보내지 않고도 파일을 보냈다고 부인할 수 없다는 것에 대한 보증이다. 1.8 비밀키 교환의 문제점들 공개키 암호 알고리즘 Diffie - Hellman - Merkle 키 교환법 비대칭키 : 암호키와 복호화 키 분리 2.10 공개키를 사용하면서 얻는 기밀성 공개키로 암호화된 메시지는 공개키에 관계된 개인키로만 복호화할 수 있다. 공개키 알고리즘의 아이디어는 해커가 공개키로 복호화하는 것이 불가능하며, 개인키를 알아내기도 힘들다는 것이다. 공개키는 숨길 필요가 없고, 분배하기 편하기 때문에 비밀키 알고리즘의 방법보다 키 분배 문제가 쉽게 해결된다. 2.11 공개키를 만드는 수학적 트릭 공개키 암호 알고리즘은 곱셈에 대한 인버스라는 간단한 수학적 개념을 토대로 만들어진다. 대부분의 공개키 암호 시스템은 역으로 계산하는 것이 어렵다는 것을 이용하여 보안성을 강화 시킨다. 2.12 개인키를 사용하여 전자 서명하기 개인키로 암호화 하는 것은 인증, 무결성, 부인 방지 기능을 제공해 준다. RSA의 경우 개인키로 암호화하는 것은 '서명'과 같고, 공개키로 암호화 하는 것은 '서명 확인'과 같다. ...
댓글
댓글 쓰기