博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows DPAPI加密解密学习
阅读量:5080 次
发布时间:2019-06-12

本文共 1498 字,大约阅读时间需要 4 分钟。

#include "stdafx.h"#include 
#include
#include
#include
#include
#pragma comment(lib,"crypt32.lib")using namespace std;void MyhandlError(char *s){ fprintf(stderr,"This is a error.\n"); fprintf(stderr ,"Current error :%x.\n",GetLastError()); fprintf(stderr,"Error info:%s.\n",s); exit(1);}int main(int argc,char* argv[]){ DATA_BLOB Datain; DATA_BLOB DataOut; DATA_BLOB Dataput; BYTE *pbdata = (BYTE*)"Hello word,this is a testing?"; DWORD cbdatalen = strlen((char*)pbdata) + 1; LPWSTR pbtest = NULL; printf("Pbdata len length is %d.\n",cbdatalen); Datain.pbData = pbdata; Datain.cbData = cbdatalen; if (CryptProtectData(&Datain,NULL,NULL,NULL,NULL,0,&DataOut)) { printf("The encodeCrypt Dta Is :%s.\n",DataOut.pbData); FILE *fp; fp = fopen("1.txt","wb"); fwrite(DataOut.pbData,cbdatalen,1,fp); fclose(fp); }else { MyhandlError("Error in CryptprotecDta.\n"); } if (CryptUnprotectData(&DataOut,&pbtest,NULL,NULL,NULL,0,&Dataput)) { printf("The decrypted data is: %s\n", Dataput.pbData); FILE *fp1; fp1 = fopen("2.txt","wb"); fwrite(Dataput.pbData,cbdatalen,1,fp1); fclose(fp1); }else { MyhandlError("Error in decode.\n"); } LocalFree(DataOut.pbData); LocalFree(Dataput.pbData); return 0;} 输出:

E:\windows\Test\Debug>Test.exe

Pbdata len length is 30.
The encodeCrypt Dta Is :..
The decrypted data is: Hello word,this is a testing?

转载于:https://www.cnblogs.com/killbit/p/4357052.html

你可能感兴趣的文章
源码安装zabbix_server服务端
查看>>
A Bug's Life poj 2492
查看>>
JSON转换
查看>>
easyUI datagrid的合并的js封装
查看>>
ivew使用星星评分
查看>>
局部内部类对外部属性和变量的访问测试
查看>>
apktool参数详解
查看>>
lamp环境centos5.10,phpprotobuf模块安装,及简单应用
查看>>
GRE与Vxlan网络详解
查看>>
uWSGI+APScheduler不能执行定时任务
查看>>
[源码和文档分享]基于C语言的八大排序算法的比较
查看>>
NOIP2015pj求和
查看>>
02-数据库查询
查看>>
人工智能第二课 机器学习 Orange 开源项目
查看>>
LeetCode -- 104. Maximum Depth of Binary Tree
查看>>
HDU 5637 Transform
查看>>
resin + eclipse 遇到的问题
查看>>
最短路径分词
查看>>
列表和元组
查看>>
sizeof与strlen的区别
查看>>