#include #include // CryptProtectData関数を使用してデータを暗号化する void EncryptData(const char* plainText, size_t dataSize) { // データのバイナリ ブロブ(blob)を表すための構造体 DATA_BLOB dataIn; DATA_BLOB dataOut; dataIn.pbData = (BYTE*)plainText; dataIn.cbData = (DWORD)dataSize; // size_t から DWORD に変換 // Cryptography API 関数 CryptProtectData を使用してデータを暗号化 if (CryptProtectData(&dataIn, L"SamplePurpose", NULL, NULL, NULL, 0, &dataOut)) { // データの暗号化に成功 printf("Encryption successful\n"); // dataOut バッファには暗号化されたデータが含まれています // ここで dataOut.pbData と dataOut.cbData を使用して処理を行うことができます // メモリの解放 LocalFree(dataOut.pbData); } else { // データの暗号化に失敗 printf("Encryption failed\n"); } } int main() { const char* plainText = "Hello, DPAPI!"; size_t dataSize = strlen(plainText) + 1; // NULL 終端文字も含む // データの暗号化 EncryptData(plainText, dataSize); return 0; }