文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院电脑入门教你一招简单实现强大的加密功能——CryptoAPI
精品广告
推荐TOP10
·教你如何编写游戏外挂
·高手都是这样清除系统垃圾的
·BIOS设置图解教程
·电脑反应慢的故障分析
·怎么添加动态屏幕保护?
·突破网盘限制 两招获取Fs2You真实地址
·打开文件夹为何突然变慢?
·看内存不能为read written 解决方法
·常见光盘文件系统标准汇总
·让电脑在插入自己的优盘后才能启动
阅读TOP10
·将系统装到U盘中 如何自制XP@USB启动盘
·教你如何编写游戏外挂
·英文感谢信模板
·多普达830如何用pim.vol写进手机方法
·高手都是这样清除系统垃圾的
·标题栏字体变小的原因以及根治方法
·BIOS设置图解教程
·UltraEdit简明使用教程
·清除google搜索栏中的历史记录
·玩转开机画面:Bios logo轻松改

简单实现强大的加密功能——CryptoAPI

日期:2004年7月4日 作者:清风网络学院 查看:[大字体 中字体 小字体]


CryptoAPI是Microsoft提供的加密应用程序接口,他其实是一组函数,他为许多高级安全性服务提供了基础,包括用于电子商务的SET,用于加密客户机/服务器消息的PCT,用于在各个平台之间来回传递机密数据和密钥的PFX,代码签名等等。
支持这种功能的主要有2000/XP(98和ME下不详)

其配置信息(密钥)主要在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
\ Cryptography \Defaults
HKEY_CURRENT_USER\ Software \ Microsoft
\ Cryptography \Providers
中,


下面以两个文件加密与解密的C程序片断为例,演示一下CryptoAPI的强大功能。这两个程序均为Win32控制台应用,程序省略了出错处理,实际运行时请加入。

----1. 文件加密

#include
#include
#include
#include

//确定使用RC2块编码或是RC4流式编码,这就是CryptoAPI支持的两种基本编码方式

#ifdef USE_BLOCK_CIPHER
#define ENCRYPT_ALGORITHMCALG_RC2
#define ENCRYPT_BLOCK_SIZE8
#else
#define ENCRYPT_ALGORITHMCALG_RC4
#define ENCRYPT_BLOCK_SIZE1
#endif

void CAPIDecryptFile(PCHAR szSource,
PCHAR szDestination, PCHAR szPassword);

void _cdecl main(int argc, char *argv[])
{
PCHAR szSource= NULL;
PCHAR szDestination = NULL;
PCHAR szPassword= NULL;

// 验证参数个数
if(argc != 3 && argc != 4) {
printf(“USAGE: decrypt < source file >
< dest file > [ ]\n");
exit(1);
}

//读取参数.
szSource= argv[1];
szDestination = argv[2];
if(argc == 4) {
szPassword = argv[3];
}
CAPIDecryptFile(szSource, szDestination, szPassword);
}

/*szSource为要加密的文件名称,
szDestination为加密过的文件名称,
szPassword为加密口令*/
void CAPIEncryptFile(PCHAR szSource,
PCHAR szDestination, PCHAR szPassword)
{
FILE *hSource = NULL;
FILE *hDestination = NULL;
INT eof = 0;
HCRYPTPROV hProv = 0;
HCRYPTKEY hKey = 0;
HCRYPTKEY hXchgKey = 0;
HCRYPTHASH hHash = 0;
PBYTE pbKeyBlob = NULL;
DWORD dwKeyBlobLen;
PBYTE pbBuffer = NULL;
DWORD dwBlockLen;
DWORD dwBufferLen;
DWORD dwCount;

hSource= fopen(szSource,“rb"));// 打开源文件
hDestination = fopen(szDestination,“wb") ;//.打开目标文件
// 连接缺省的CSP,密码服务提供者模块(CSP),这是通过WIN系统中捆绑的RSA Base Provider实现的。
CryptAcquireContext(&hProv, NULL, NULL,

[1] [2] [3] 下一页 

上一篇:再谈Unicode漏洞的攻击手段与防护策略

下一篇:NIS网络信息系统简介


相关软件: 相关文章:
·c# MD5加密算法的实例
·计算机硬盘加密的几种方法
·QQ2004加密文件和加密算法分析
·SQL Server 2005数据加密技术应用研究
·给Ghost镜像文件加密
·破解加密光盘五法
·破解加密光盘五式

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号