본문 바로가기

[C++11] Variadic template # Variadic template - template 에서 타입의 인자를 가변으로 처리 할 수 있는, 새로운 ... 표현식이이 생겼다 - http://en.wikipedia.org/wiki/Variadic_template - 그리고 또 다른 설명인 MSDN의 링크 http://msdn.microsoft.com/ko-kr/library/dn439779.aspx variadic 템플릿 함수를 통합하는 대부분의 구현은 일부 양식의 재귀를 사용하지만 전통적인 재귀와는 약간 다릅니다. 전통적인 재귀는 같은 서명을 사용하여 자신을 호출하는 함수를 포함합니다. (오버로드하거나 템플릿화할 수 있지만 매번 동일한 시그너처가 선택됩니다.) Variadic 재귀에는 다른 수의 인수(거의 항상 줄어듦)를 사용하여 varia.. 더보기
Mybatis 테스트 # Mybatis 를 콘솔 어플리케이션 환경에서 테스트 - 한글소개 : http://mybatis.github.io/mybatis-3/ko/ - 다운로드 : https://github.com/mybatis/mybatis-3/releases - SQL Server용 Microsoft JDBC Driver 4.0 : http://www.microsoft.com/ko-kr/download/details.aspx?id=11774 # mybatis.xml - mybatis 의 기본 설정 파일 - 다중 DB 연결 관리(environment) 및 다중 매퍼파일 등록을 관리 - 다중 DB 연결 테스트를 위해 같은 DBMS의 DB 만 다른 설정 DOCTYPE configuration PUBLIC "-//mybatis.o.. 더보기
SHA1 해쉬함수, boost 라이브러리로 구현 # SHA1 해쉬 함수의 경우 crypto++ 라이브러리로 사용 가능 하지만, 간단히(?) boost 라이브러리도 가능. http://www.cryptopp.com/ 실행 : http://coliru.stacked-crooked.com/a/4d6de3acd08dee1c#include #include using namespace std; #include #include string ToSHA1(const string s) { boost::uuids::detail::sha1 sh; sh.process_bytes(s.c_str(), s.length()); unsigned int digest[5]; sh.get_digest(digest); string r; for(int i = 0; i < 5; ++i) { r.. 더보기
디피-헬만 키 교환, C++ 예제 # 큰수를 나타내기 위해 boost::multiprecision 의 cpp_int 클래스 이용 http://www.boost.org/doc/libs/1_56_0/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/cpp_int.html # 큰수를 나타내는 boost 지원 3개의 클래스 비교 http://www.boost.org/doc/libs/1_56_0/libs/multiprecision/doc/html/boost_multiprecision/tut/ints.html # 소수 판별을 위한 boost::multiprecision 의 miller_rabin_test 함수 사용 # 밀러 라빈 소수 판별법 http://ko.wikipedia.org/wiki/.. 더보기
디피-헬만 키 교환 출처 : 위키백과 http://ko.wikipedia.org/wiki/%EB%94%94%ED%94%BC-%ED%97%AC%EB%A7%8C_%ED%82%A4_%EA%B5%90%ED%99%98 디피-헬만 키 교환위키백과, 우리 모두의 백과사전.디피-헬만 키 교환(Diffie–Hellman key exchange)은 암호 키를 교환하는 하나의 방법으로, 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 한다. 휫필드 디피와 마틴 헬만이 1976년에 발표하였다.디피-헬만 키 교환은 기초적인 암호학적 통신 방법을 수립하였으며, 이후 1977년 공개 키 암호 방식인 RSA 암호가 제안되었다.방식[편집]앨리스와 밥이 공개된 통신망에서 디피-헬만 키 교환을 하기 위해서는 다음과 같은 절차를 .. 더보기
SSL 키 교환 방식 출처 : http://eastdg.wordpress.com/2014/04/09/ssltls-%EA%B8%B0%EB%B3%B8/ Key Exchange (키 교환)SSL/TLS이 사용할 수 있는 몇몇 키 알고리즘들이 있는데, 대부분의 키 알고리즘들은 서버의 공개키를 이용하여 동작한다. 다음은 많이 쓰이는 키 알고리즘 들이다.RSA: 서버의 키…….유형이 RSA 형식인 경우 사용가능하다. 클라이언트는 46바이트의 랜덤 값과 2바이트 버전을 포함한 총 48바이트의 “pre-master secret” 값을 만들어 서버의 공개키로 암호화 하여 전송한다. 이러한 경우 ServerKeyExchange 과정은 없다.DHE_RSA: 서버의 키 유형이 RSA 형식인 경우지만, 해당 키는 서명을 하는 경우에만 사용된다. 실.. 더보기
해쉬 함수 SHA1CryptoServiceProvider, SHA1Managed 차이 SHA1CryptoServiceProvider는 윈도우의 CryptoAPI(CAPI)를 래핑한 unmanaged 구현체 이고, SHA1Managed는 .NET으로 구현한 Managed 코드 SHA1Managed가 상대적으로 느리다고 하는데, 그 차이는 ms 단위의 속도를 중요시 하지 않는 업무라면 문제 없을 듯 하고, 자체 구현이라 이식성도 좋아 보임 물론 사용 가능 하다면 SHA1CryptoServiceProvider 쓰는것이 최선.. http://codeissue.com/issues/i34dda6deaad90a/difference-between-sha1-sha1cryptoserviceprovider-sha1managed-and-sha1cng SHA1CryptoServiceProvider: this i.. 더보기
How to Configure MSDTC to Use a Specific Port in Windows Server 2012/2012R2 출처 : http://blogs.msdn.com/b/distributedservices/archive/2012/01/16/how-to-configure-the-msdtc-service-to-listen-on-a-specific-rpc-server-port.aspx My name is Steven Graves and I am a Senior Support Escalation Engineer on the Windows Core Team. In this blog, I will discuss how to configure MSDTC to use a specific port on Windows Server 2012/2012R2 as this has slightly changed from the way it is .. 더보기
boost 설치 # msvc-14.0 : vc++ 2015# msvc-12.0 : vc++ 2013# 64bit : address-model=64bjam.exe toolset=msvc-11.0 link=static runtime-link=static --with-system --with-date_time --with-regex --with-thread -j 4 stage 출처 : http://www.viper.pe.kr/cgi-bin/moin.cgi/Boost 3.1. bjam 사용법 [Bottom] [Top]Boost 라이브러리는 대부분 Template 으로 구성되어 있다. 하지만 regex, thread 와 같이 빌드가 필요한 라이브러리를 포함하고 있다. bjam 은 이런 라이브러리들을 빌드와 설치를 자동화 해주기 .. 더보기
ubuntu server 12.04 # 언어 설정 sudo apt-get install language-pack-kosudo locale-gen ko_KR.UTF-8 sudo vi /etc/profileLANG="ko_KR.EUC-KR"LANG="ko_KR.UTF-8" sudo vi /etc/environmentLANG="ko_KR.EUC-KR"LANG="ko_KR.UTF-8"LANGUAGE="ko_KR:ko:en_GB:en" sudo vi /etc/default/localeLANG=ko_KR.EUC-KR # nginx 설치 sudo apt-get install nginx # php5 설치# 의존성으로 php5 설치 됨sudo apt-get install php5-fpm # nginx, php5 유닉스 소켓으로 연결sudo vi /etc/.. 더보기