zoukankan      html  css  js  c++  java
  • Win32 DPAPI加密编程

    DPAPI函数是CryptoAPI中少有的简单易用的加密函数,调用过程简单,其调用接口几乎不涉及密码学概念。Win32 DPAPI有4个函数,它们分别是CryptProtectData、CryptUnProtectData、CryptProtectMemory和CryptUnProtectMemory。

    CryptProtectData和CryptUnProtectData有一个用户提示描述结构,应用程序可以在这里设定呈现给用户的提示对话框的出现时机和内容。代码示例如下:

    //-------------------------------------------------------------------
    //  初始化提示对话框结构.
    
    ZeroMemory(&PromptStruct, sizeof(PromptStruct));
    PromptStruct.cbSize = sizeof(PromptStruct);
    PromptStruct.dwPromptFlags = CRYPTPROTECT_PROMPT_ON_PROTECT;
    PromptStruct.szPrompt = L"这是一个用户提示。";
    
    //  实施数据加密保护
    if(CryptProtectData(
         &DataIn,
         L"This is the description string.", // 说明 
         NULL,                               // 可选附加扰码,本例不用
         NULL,                               // 保留
         &PromptStruct,                      // 传入前面准备好的提示对话框结构
         0,
         &DataOut))
    {
         printf("数据加密保护完成.
    ");
    }
    else
    {
         printf("数据加密保护失败.
    ");
    }
    
    
    //---------------------------------------------------------------------------
    // 进行数据解密还原操作
    if (CryptUnprotectData(
            &DataOut,
            &pDescrOut,
            NULL,                 // 附加扰码,必须与加密时所用的一致。
            NULL,                 // Reserved
            &PromptStruct,        // 提示对话框描述结构
            0,
            &DataVerify))
    {
         printf("解密出来的数据是: %s
    ", DataVerify.pbData);
         printf("数据的描述是: %S
    ",pDescrOut);
    
    }
    else
    {
        printf("解密错!");
    }
  • 相关阅读:
    使用node调用支付宝生成支付二维码(沙箱环境)
    nodejs+mysql嵌套查询的问题
    移动端H5开发问题记录
    在jquery中,使用ajax上传文件和文本
    css百分比值到底参考谁?
    vue cli3 + cube-ui 配置rem踩坑记录
    MFC【exe】工程中的文件大致信息(翻译的)
    ActiveX、OLE和COM/DCOM
    系统版本
    图形库
  • 原文地址:https://www.cnblogs.com/kodefun/p/4883671.html
Copyright © 2011-2022 走看看