winapi:암호화
Cryptography API
In Microsoft cryptographic technologies
- CryptoAPI
- Cryptographic Service Providers (CSP)
- CryptoAPI Tools
- CAPICOM
- WinTrust
- issuing and managing certificates
- developing customizable public key infrastructures
- Certificate and smart card enrollment
- certificate management
- custom module development
지원하는게 많네, 하지만 관심은 CryptoAPI에만 있으니 나머지는 패스
CryptoAPI
윈도우 어플리케이션에서 인터넷과 같은 보안 사각지대에서 문서나 데이터를 안전하게 주고 받을 수 있도록 하는 목적으로 사용된다. C나 C++을 사용할 수 있어야하고 암호화에 대한 지식이 있으면 편하겠지.
CAPICOM
32bit 컴포넌트로, VBScript나 C++ 언어로 애플리케이션 개발에 사용되는 컴포넌트.
OS가 지원하는(명시한) 런타임 환경(스펙)하에서 사용되는 것이 가능합니다.
(CAPICOM is available for use in the operating systems specified in Run-Time Requirements.)
Quick Link
예제 모음
Cryptography API 를 사용한 난수 생성
이런 것도 되나.. 흠
웹사이트 설명 :
- 윈도우 환경에서 난수를 생성해야 하는 경우라면 CRT 함수 대신 Cryptography API의 하나인 CryptGenRandom() (http://msdn.microsoft.com/ko-kr/library/aa379942.aspx) 함수를 고려해 볼 수 있습니다.
- 이 함수를 이용하면 주어진 버퍼의 크기만큼 난수를 생성할 수 있는 장점이 있습니다.
#include "stdafx.h" #include <iostream> #include <windows.h> using namespace std; #pragma comment(lib, "crypt32.lib") #include <Wincrypt.h> #define MY_ENCODING_TYPE (PKCS_7_ASN_ENCODING | X509_ASN_ENCODING) int main() { //-------------------------------------------------------------------- // 변수를 선언하고 초기화 합니다. HCRYPTPROV hCryptProv; BYTE pbData; //------------------------------------------------------------------- // 암호 제공자의 컨텍스트 핸들을 얻습니다. if(CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0)) { printf("CryptAcquireContext succeeded. \n"); } else { printf("Error during CryptAcquireContext!\n"); } //-------------------------------------------------------------------- // BYTE 범위내에서 난수를 생성합니다. if(CryptGenRandom(hCryptProv, 1, &pbData)) { printf("Random number is: %d.\n", ((int)pbData) * 100 / 255); } else { printf("Error during CryptGenRandom.\n"); exit(1); } //------------------------------------------------------------------- // 컨텍스트 핸들을 해제합니다. if(hCryptProv) { if (!CryptReleaseContext(hCryptProv, 0)) { printf("Failed CryptReleaseContext\n"); } } return 0; }
winapi/암호화.txt · 마지막으로 수정됨: 2024/04/23 22:43 저자 127.0.0.1