资源简介
相关描述在http://blog.csdn.net/btlong520/article/details/50489720

代码片段和文件信息
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Security;
namespace RDPdemo
{
[Serializable()]
public sealed class DataProtection
{
[Flags()]
public enum CryptProtectPromptFlags
{
CRYPTPROTECT_PROMPT_ON_UNPROTECT = 0x01
CRYPTPROTECT_PROMPT_ON_PROTECT = 0x02
CRYPTPROTECT_PROMPT_RESERVED = 0x04
CRYPTPROTECT_PROMPT_STRONG = 0x08
CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 0x10
}
[Flags()]
public enum CryptProtectDataFlags
{
CRYPTPROTECT_UI_FORBIDDEN = 0x01
CRYPTPROTECT_LOCAL_MACHINE = 0x04
CRYPTPROTECT_CRED_SYNC = 0x08
CRYPTPROTECT_AUDIT = 0x10
CRYPTPROTECT_NO_RECOVERY = 0x20
CRYPTPROTECT_VERIFY_PROTECTION = 0x40
CRYPTPROTECT_CRED_REGENERATE = 0x80
}
#region 加密数据
public static string ProtectData(string data string name)
{
return ProtectData(data name
CryptProtectDataFlags.CRYPTPROTECT_UI_FORBIDDEN | CryptProtectDataFlags.CRYPTPROTECT_LOCAL_MACHINE);
}
public static byte[] ProtectData(byte[] data string name)
{
return ProtectData(data name
CryptProtectDataFlags.CRYPTPROTECT_UI_FORBIDDEN | CryptProtectDataFlags.CRYPTPROTECT_LOCAL_MACHINE);
}
public static string ProtectData(string data string name CryptProtectDataFlags flags)
{
byte[] dataIn = Encoding.Unicode.GetBytes(data);
byte[] dataOut = ProtectData(dataIn name flags);
if (dataOut != null)
return (Convert.Tobase64String(dataOut));
else
return null;
}
///
/// 加密数据
///
/// 要加密的明文数据
/// 有意义的描述,此描述会加到加密后的数据中
/// flags的位标志
///
private static byte[] ProtectData(byte[] data string name CryptProtectDataFlags dwFlags)
{
byte[] cipherText = null;
// copy data into unmanaged memory
//DATA_BLOB结构,用于CryptProtectData参数
DPAPI.DATA_BLOB din = new DPAPI.DATA_BLOB();
din.cbData = data.Length;
//Marshal类的作用:提供了一个方法集,这些方法用于分配非托管内存、复制非托管内存块、将托管类型转换为非托管类型,
//此外还提供了在与非托管代码交互时使用的其他杂项方法。
//为din.pbData分配内存
din.pbData = Marshal.AllocHGlobal(din.cbData);
//InPtr结构:用于表示指针或句柄的平台特定类型
//分配内存错误,抛出内存不足异常
//IntPtr.Zero:一个只读字段,代表已初始化为零的指针或句柄
if (din.pbData.Equals(IntPtr.Zero))
throw new OutOfMemoryException(“Unable to allocate memory for buffer.“);
//将data数组中的数据复制到pbData内存指针中
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-01-09 20:59 RDPdemo\
目录 0 2016-01-09 21:39 RDPdemo\RDPdemo\
文件 7586 2016-01-09 21:00 RDPdemo\RDPdemo\DataProtection.cs
文件 6935 2016-01-09 21:33 RDPdemo\RDPdemo\Form1.Designer.cs
文件 2273 2016-01-09 21:39 RDPdemo\RDPdemo\Form1.cs
文件 5817 2016-01-09 21:33 RDPdemo\RDPdemo\Form1.resx
文件 488 2016-01-09 20:59 RDPdemo\RDPdemo\Program.cs
目录 0 2016-01-09 21:23 RDPdemo\RDPdemo\Properties\
文件 1356 2016-01-09 20:59 RDPdemo\RDPdemo\Properties\AssemblyInfo.cs
文件 3925 2016-01-09 21:23 RDPdemo\RDPdemo\Properties\Resources.Designer.cs
文件 6202 2016-01-09 21:23 RDPdemo\RDPdemo\Properties\Resources.resx
文件 1094 2016-01-09 20:59 RDPdemo\RDPdemo\Properties\Settings.Designer.cs
文件 249 2016-01-09 20:59 RDPdemo\RDPdemo\Properties\Settings.settings
文件 3845 2016-01-09 21:23 RDPdemo\RDPdemo\RDPdemo.csproj
目录 0 2016-01-09 21:23 RDPdemo\RDPdemo\Resources\
文件 1181 2016-01-09 21:23 RDPdemo\RDPdemo\Resources\TemplateRDP.txt
目录 0 2016-01-09 21:00 RDPdemo\RDPdemo\bin\
目录 0 2016-01-09 21:37 RDPdemo\RDPdemo\bin\Debug\
文件 15872 2016-01-09 21:39 RDPdemo\RDPdemo\bin\Debug\RDPdemo.exe
文件 30208 2016-01-09 21:39 RDPdemo\RDPdemo\bin\Debug\RDPdemo.pdb
文件 22704 2016-01-09 21:40 RDPdemo\RDPdemo\bin\Debug\RDPdemo.vshost.exe
文件 1625 2016-01-09 21:39 RDPdemo\RDPdemo\bin\Debug\ceshi.rdp
目录 0 2016-01-09 21:40 RDPdemo\RDPdemo\bin\Release\
目录 0 2016-01-09 20:59 RDPdemo\RDPdemo\obj\
目录 0 2016-01-09 21:39 RDPdemo\RDPdemo\obj\Debug\
文件 791 2016-01-09 20:59 RDPdemo\RDPdemo\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6873 2016-01-09 21:23 RDPdemo\RDPdemo\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 180 2016-01-09 21:33 RDPdemo\RDPdemo\obj\Debug\RDPdemo.Form1.resources
文件 1399 2016-01-09 21:24 RDPdemo\RDPdemo\obj\Debug\RDPdemo.Properties.Resources.resources
文件 586 2016-01-09 21:40 RDPdemo\RDPdemo\obj\Debug\RDPdemo.csproj.FileListAbsolute.txt
文件 892 2016-01-09 21:33 RDPdemo\RDPdemo\obj\Debug\RDPdemo.csproj.GenerateResource.Cache
............此处省略7个文件信息
- 上一篇:ASP.NET+SQL在线考试系统(毕业设计)
- 下一篇:MVC查询加分页的
相关资源
- C# TIP文件生成和拆解
- C#解析HL7消息的库135797
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
评论
共有 条评论