var plainText = 'HELLO 반갑습니다.'; var check = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/; /** * 한글이 있다면 URI 인코딩을 한다. */ if(check.test(plainText)){ plainText = encodeURIComponent(plainText); } /** * 16바이트 길이의 랜던 키와, Initialization Vector 값을 생성 */ var key = forge.random.getBytesSync(16); var iv = forge.random.getBytesSync(16); var cipher = forge.cipher.createCipher('AES-CBC', key); cipher.start({ iv: iv }); cipher.update(forg..
앞서 ATS에 대해 설명과 옵션에 대해 간략히 설명했으니 바로 본론으로 들어가겠다.ATS를 만족하면서 TLS 1.2 버전 아래나, HTTP 프로토콜을 사용하는 법은App Transport Security에 Exception Domains를 등록하면되는데,이게 무턱대고 등록한다고 다 통신을 할 수 있는게 아니다. ATS Exception 옵션을 중에 어떤것은 키고 어떤것은 끄고 해야 하는데 이를 애플에서 간단한 명령어 하나로 확인 할 수 있도록 지원해준다. 일단 터미널을 킨다.command :nscurl -- ats diagnostics DOMAIN --verbose DOMAIN 에다가 넣고싶은 도메인을 넣으면 된다.일단 예제로, nscurl -- ats diagnostics https://google.c..
컴퓨터 시스템 일부를 개선할 때 전체적으로 얼마만큼의 최대성능 향상이 있는지 계산하는데 사용.암달의 법칙에 따르면, 어떤 시스템을 개선하여 전체 작업 중 {\displaystyle P}%의 부분에서 {\displaystyle S}배의 성능이 향상되었을 때 전체 시스템에서 최대 성능 향상은 다음과 같다.{\displaystyle {\frac {1}{(1-P)+{\frac {P}{S}}}}} 병렬 컴퓨팅에서 멀티 프로세서를 사용할 때 프로그램의 성능향상은 프로그램의 순차적인 부분에 의해 제한된다. 예를 들면, 프로그램의 95%가 병렬화 할 수 있다면 이론적인 최대 성능 향상은 아무리 많은 프로세서를 사용하더라도 최대 20배로 제한된다. (출처 - https://ko.wikipedia.org/wiki/%EC%..
애플에서 iOS9 에 ATS 개념을 설명하면서 HTTPS의 사용을 권장했다(HTTP 쓰지말라는 말)iOS10에 들어스면서 이젠 강압적으로 ATS를 사용하지 않은 앱은 앱스토어 배포를 리젝한다고 공표를 했다.따라서 HTTP는 물론이고, HTTPS 일지라도 TLS 1.2 아래 버전이면 ATS 정책에 의거 통신을 할 수 없게 된다.(출처 - http://nopdin.tistory.com/1818) 하지만, 어떠한 이유로 인해 써야만 하는 상황이 올 수 밖에없다. HTTP 통신을 아예 하지 못하는 것은 아니다.HTTP통신을 하는 방법 중 하나는, NSAllowsArbitraryLoadsInWebContent를 YES로 하고 WKWebView를 사용하여 HTTP 통신을 하거나,info.plist에서 App Tra..
고급 암호화 표준이라고 불리는 AES는 미국 표준기술 연구소에서 제정한 암호화 방식이다.레인달(Rijndael) 알고리즘에 기반된 암호화 방식으로 128, 192, 256비트 의 키길이로 처리할 수 있고 무료 배포가 가능하여 채택되었다. AES암호화에 사용되는 알고리즘들은 아래와 같이 4가지가 있다. (이들을 묶어 레인달 알고리즘이라 한다.)- Substitution Box (일명 s-box) : 바이트들을 s-box에 있는 바이트들과 바꾸는 알고리즘, 이는 입력데이터를 지정된 숫자로 바꿔 암호를 깨기 어렵게 만드는 기법이다.- ShiftRows : 바이트의 행을 Shift하는 알고리즘- MixColumns : 특수한 공식으로 바이트값들을 바꾸는 알고리즘- AddRoundKey : XOR 연산자를 사용하..
유니코드 - 컴퓨터에서 문자를 표현하기 위한 거대한 표 - 아스키 코드와 같이 문자를 숫자로 바꿔주는 표 - 프로토콜에 가깝다 비트와 바이트 - 1비트는 [], 2비트는 [][], 3비트 [][][] - 1바이트 = 8 비트 [][][][][][][][] - 16진법 두자리 숫자는 1바이트에 해당, (예 : 0xC3FF ( C, 3, F, F) 는 2바이트 , 0x10FFFF (1, 0, F, F, F, F) 3바이트) )용어 - 코드포인트 : 문자에 부여한 고유한 숫자값 - 평면 : 적당한 범위로 나눠서 코드포인트를 관리하는 범위 (예 : 0평면(0x0000 ~ 0xFFFF) 1평면(0x10000 ~ 0x1FFFF) - 코드 유닛 : 바이트 덩어리를 어떤 기준으로 잘라 코드포인트를 볼 것인지를 결정하는..
Universal CRT14년 6월 ms에서 기존CRT의 논리파트를 VCRuntime과 Stable로 나누었는데, VCRuntime은 프로세스 시작과 예외처리와 같은 것을 지원하며, stable은 CRT의 순수한 라이브러리를 지원하도록 설계했다. 여기서 stable은 또 AppCRT와 DesktopCRT로 나뉜다. ms가 이렇게 CRT구조를 나눈 이유는 in-place 서비스를 제공하기 위해서 나눴다고 했는데 15년 말에 ms가 두개로 나눈 stable 파트를 다시 하나의 라이브러리로 바꾸었는데 이게 바로 Universal CRT가 되겠다. (이 또한 in-place 서비스 제공을 위함이라 함)Universal CRT는 기존 CRT와 다르게 Visual C++의 일부가 아닌 WindowsKits의 일부로..
cbr125를 타다가 문득 125cc의 최고봉은 어떨까라는 생각이 들었다. 그렇다 정든 cbr을 팔아치우고 버그만으로 기변을 했다. 버그만을 위해 진주까지 내려갔다 새벽 버스를 타고 진주에 도착하고 거래를 하니 11시쯤 되었는데 날도 꾸리꾸리 하고 꼭 비가 올것만 같았지만, 어쩌겠는가 새로운 붕붕이를 얻으니 비 따윈 고민거리가 되지 못했다. 버그만을 진주에서 청주까지 오는 길은 감탄의 연속이었다.스쿠터에서 매뉴얼로 기변을 한 이유는 125cc의 한계도 있을 수 있지만 스쿠터가 매뉴얼에 비해 최고속도가 떨어지기 때문에 스쿠터를 타다가 매뉴얼로 기변을 했는데, 버그만은 125cc 스쿠터중 아마도 최고속이 가장 빠른 스쿠터일 것이다. 오는 내내 100km/h 안팍으로 정속 주행을 하면서 레드존 까지 치면 12..
* remote debug - 비주얼 스튜디오를 사용하여 원격으로 디버깅을 함 - 원격 PC에 비주얼 스튜디오가 없어도 디버깅이 가능함 로컬 pc : 디버깅을 하는 pc (visual studio 가 설치된 pc)원격 pc : 디버깅을 당하는(?) pc * 순서 1. 원격 PC의 IP 획득 2. 원격 PC의 C:/Remote 경로에(사실 경로는 아무데나 상관없다) 폴더를 만들어줌 3. 원격 PC의 C:/Remote 경로에 로컬 PC의 C:\Program Files\Microsoft Visual Studio(version)\Common7\IDE\Remote Debugger 폴더를 복사 (상식적으로 visual studio 가 안깔린 pc에 깔린pc의 분비물이라도 들어가야 뭐라도 할거 아닌가) 4. 원격 P..
- Total
- Today
- Yesterday
- iOS10
- remote debug
- rxswift
- executable jar
- PCX
- Universal CRT
- full stack
- reactivex
- 비대칭키
- ATS
- TypedArray
- TLS1.2
- AES
- execute double click
- cipher
- yss
- node js
- angular
- 윈도우 라이브러리
- MEAN stack
- Visual Studio
- build set
- ucrtbase.dll
- HTTPS
- App Transport Security
- JavaScript
- 전자서명
- Node.js
- 암호화
- 대칭키
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |