当前位置:  开发笔记 > Android > 正文

创建加密的日志文件

如何解决《创建加密的日志文件》经验,为你挑选了2个好方法。

我正在创建一个客户端应用程序,它需要创建用户活动的日志,但由于各种原因,此日志必须是人类可读的.

目前,对于我的开发,我正在创建一个纯文本日志,如下所示:

12/03/2009 08:34:21 - >用户'Bob'登录于12/03/2009 08:34:28 - >导航到配置页面12/03/2009 08:34:32 - >选项x改为ÿ

部署应用程序时,日志不能是纯文本,因此所有文本都必须加密.这看起来并不简单,因为我需要在添加每个条目时动态更新日志文件.我想到的方法是创建一个二进制文件,隔离加密每个日志条目,然后将它附加到二进制文件,每个条目之间有一些合适的分界.

有谁知道这个问题的任何常见方法,我相信必须有一个更好的解决方案!



1> Dennis G...:

不要单独加密单个日志条目,并按照其他海报的建议将其写入文件,因为攻击者可以轻松识别日志文件中的模式.请参阅块密码模式Wikipedia条目以了解有关此问题的更多信息.

原版的 使用ECB模式加密 使用其他模式加密

相反,请确保日志条目的加密取决于以前的日志条目.虽然这有一些缺点(你不能解密单个日志条目,因为你总是需要解密整个文件),但它使加密更加强大.对于我们自己的日志记录库SmartInspect,我们使用AES加密和CBC模式来避免模式问题.随时给SmartInspect一个尝试,如果一个商业解决方案将是合适的.


(不同意答案)我同意Dennis的观点,即如果它提供了问题的答案,那么"插入"商业产品(甚至是你自己的产品)是可以接受的.
我不确定wzzrd.如果我正在寻找问题的解决方案并且有一个工具已经完成了我正在寻找的东西,如果有人指出它(即使它是商业的)我会很高兴.此外,即使您对我们的工具不感兴趣,我希望我的答案也很有用.
你的样本图片是ECB模式,没有人会理智.如果您使用CBC作为单个日志行(或GCM)并为每一行使用不同的IV(按行号增加nounce),那么将无法通过.但是,在每个日志条目的末尾仍然可能有填充,因此如果您对数据敏感,则可能会更好地使用流密码.并且不要忘记完整性保护(例如滚动哈希).

2> tonys..:

FWIW,有一次我需要一个加密的记录器,我使用对称密钥(出于性能原因)加密实际的日志条目.

然后,对称的"日志文件密钥"在公钥下加密并存储在日志文件的开头,并且单独的日志阅读器使用私钥来解密"日志文件密钥"并读取条目.

整个过程是使用log4j和XML日志文件格式实现的(为了使读者更容易解析),每次日志文件都滚动到一个新的"日志文件密钥"时生成.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有