在NTFS上查看加密文件的密文(EFS)

时间:2013-09-01 17:38:54

标签: windows encryption ntfs efs

所以我正在为我在学校上课的课程进行数据加密测试(对于这项任务,我们只打算使用Windows环境),而且我能够使用Windows内置的“ cipher.exe“工具就好了,我们需要做什么。

我制作了一个小的.txt文件(我的纯文本),然后使用“cipher / e PlainText.txt”加密它,没有错误。但是,我希望能够查看密文。怎么会这样做呢?我尝试以无法正确访问该文件的用户身份登录,而不是看到密文,它只是出现空白,说“拒绝访问”。

感谢您的任何想法。

1 个答案:

答案 0 :(得分:1)

打开加密文件以读取其原始加密内容(例如备份/恢复应用程序)的方法是使用:

api功能。

使用假设的混合语言动态编写代码:

void ExportEncryptedFileToStream(String filename, Stream targetStream)
{
   Pointer context;

   res = OpenEncryptedFileRaw("C:\Users\Ian\wallet.dat", 0, ref context);
   if (res <> ERROR_SUCCESS)
      RaiseWin32Error(res);
   try
   {
      res = ReadEncryptedFileRaw(exportCallback, null, context);
      if (res != ERROR_SUCCESS)
         RaiseWin32Error(res);
   }
   finally
   {
      CloseEncryptedFileRaw(context)
   }
}

function ExportCallback(pbData: PBYTE, pvCallbackContext: PVOID, ulLength: ULONG): DWORD
{
   Stream targetStream = Stream(pvCallbackContext);

   try
   {
      targetStream.Write(pbData, ulLength);
   }
   catch (Exception e)
   {
      return ERROR_WRITE_FAULT;
   }
   return ERROR_SUCCESS;
}
  

注意:任何已发布到公共领域的代码。无需归属。