NLog - 如何解密日志文件

时间:2015-07-31 09:36:18

标签: c# encryption nlog

我登录了我的网站,我希望加密日志文件。要对日志文件进行加密,我只需将属性 fileAttributes =" Encrypted" 添加到配置文件中,您将在此处看到:

    <target name="file" xsi:type="File"
        layout="${longdate} | ${pad:padding=-5:inner=${level:uppercase=true}} | ${message} ${onexception:inner=${newline}   ${exception:format=ToString}}"
        fileName="${basedir}/Log/log_info.log"
        fileAttributes="Encrypted"
        archiveFileName="${basedir}/Log/log_info_{#}.log"
        archiveAboveSize="1048576"
        archiveNumbering="Rolling"
        maxArchiveFiles="2"
        concurrentWrites="true"
        keepFileOpen="false" />

问题 :如何解密该文件以查看日志记录?

2 个答案:

答案 0 :(得分:4)

NLog不会加密文件本身,它只是要求操作系统处理它。在.NET中显示FileOptions.Encrypted枚举值。谁的评论很好地描述了它的作用:

  

表示文件已加密,只能使用与加密相同的用户帐户进行解密。

&#34;相同的用户帐户&#34;作为最典型的挂断,IIS通常使用自己的帐户运行,this existing Q+A中详细介绍了详细信息。 this MSDN page中详细介绍了操作系统的实现。

在Web服务器上使用此选项应该稍微停顿一下。唯一能够轻松阅读日志文件的人是从外部危害机器的攻击者。他阅读文件没有任何问题,因为他使用的是IIS帐户,所以内容很容易以明文形式提供。 需要日志文件以阻止此类攻击者的人将非常难以阅读该文件,因为他们将使用自己的帐户访问该计算机。

这不是一种理想的安全措施。

答案 1 :(得分:3)

fileAttributes =“加密”表示该文件将具有NTFS属性Encrypted。 https://github.com/nlog/NLog/wiki/File-target

解密它 - 转到文件属性 - &gt;属性 - &gt;高级并取消选中“加密内容以保护数据”。

它可以在加密文件的同一台计算机上运行。因此,无法在另一台计算机上解密该文件的副本。