Software

HMAC SHA-256

HMAC(Hash-based Message Authentication Code, 해시기반 메시지 인증 코드)와 SHA(Secure Hash Algorithm)-256 약자의 조합으로, 인증 코드(여기서는 MAC)를 해시(여기서는 SHA) 값을 이용해 만드는 방법을 말한다. RFC 2104로 1997년에 작성되었으며, Java, ASP.NET, C#, C++, Ruby, PHP, Perl, VB 등 다양한 언어에서 지원하고 있다. (SHA-256과 같은)해시 알고리즘이란? 먼저 해시 알고리즘부터 살펴보자. 해시는 많은 용량의 데이터를 고정된 크기의 고유 값으로 […]

HMAC SHA-256 더 읽기"

PCI DSS(Payment Card Industry Data Security Standard)

간략히 말해 PCI SSC(Payment Card Industry Security Standards Council, 카드 결제 산업 보안 표준 의회)에서 내놓은 카드 결제에 관련된 가이드 중 하나가 PCI DSS(Payment Card Industry Data Security Standard, 카드 결제 산업 데이타 보안 표준)다. PCI SSC는 아메리칸 익스프레스, 디스커버, JCB, 마스타카드, 비자가 뭉쳐 기술적 요구사항이나 보안 이슈 등에 대한 방향을 만들고자 만들어졌다. 물론 전략적 파트너나

PCI DSS(Payment Card Industry Data Security Standard) 더 읽기"

Jericho로 HTML 파싱하기

안드로이드와 iOS 모두 웹뷰를 지원하므로, 앱에 웹 페이지를 끼워넣을 수 있다. 하지만, 브라우저 대비 성능이 떨어진다거나 브라우저와 동일하게 동작하지 않는 등 자잘한 이슈들이 늘 따라다니는게 웹뷰다. 어쨌든, 웹뷰를 이용해 페이지를 보여주라는 가이드를 받았지만 뷰(View)로 처리 하는 것이 더 좋다고 생각한다면 HTTP를 통해 서버와 통신하여 데이터를 가져온 후 네이티브 코드로 화면을 보여주면 된다. 여기서 일부 필요한

Jericho로 HTML 파싱하기 더 읽기"

안드로이드의 상위 호환성

지난 글에서 AndroidManifest.xml의 SdkVersion에 대해 이야기 했다. 안드로이드 개발자 사이트에서 이 SdkVersion들에 대한 글을 읽다 보면  이런 말이 나온다. Android applications are generally forward-compatible with new versions of the Android platform. 라고 나와있다.  상위호환성이 뭔가? 상위호환성을 이해하기 위해 하위호환성을 먼저 살펴보자.  위키피디아(영문)에 따르면 이전 버전에서 만든 입력값을 처리할 수 있다면 ‘하위 호환성’이 있다고 한다. 자바를

안드로이드의 상위 호환성 더 읽기"

HTTP 헤더의 Host 값 수정하기

지난 글에서 /system/etc/hosts 파일을 수정했다. 그런데 이 방법은 사용자 바이너리를 루팅하거나 엔지니어링 바이너리(주로 단말 제조사에서 사용)에서만 가능하다. 이번에는 파일을 직접 수정하는 대신에, HTTP request를 만들 때 헤더에 Host 값을 직접 넣자. Apache HttpComponents를 사용하는 경우, HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost( “http://www.example.com” ); httpPost.setHeader(“Host”, “test.example.com”); HttpEntity requestEntity = new StringEntity( “{\”id\”: \”Open\”}”

HTTP 헤더의 Host 값 수정하기 더 읽기"