- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 Java 类,它扩展了 Ant Zip Task 来为我完成特定的工作。我想创建一个 zip 文件,一旦创建了该文件,我就想抑制 inode 中的访问时间,这样即使文件被修改,我也无法修改或找到不让它改变的方法。这样做的原因是我制作了一个取决于访问时间的 md5 散列。因此,这给我带来了很多麻烦,让访问时间保持不变将解决我的问题。现在有人知道我将如何做到这一点吗?谢谢!
最佳答案
我之前不得不解决类似的问题 - 也许这是您的选择。就我而言,问题是:
We made a jar file and then ran an secure hash algorithm on the jar file. Because the jar file is really a zip file, and a zip file internally contains file metadata information including last access time, if we create a new jar file from the exact same source material, then the hash on the new jar file doesn't match the original hash (because while the zip contents are the same, the metadata stored in the zip file has different file creation / access times).
基本上,出于合规性目的,我们需要能够计算安全散列,以便能够轻松显示 jar 的内容未更改。重新编译等效的 jar 没问题 - 只是内容必须相同。
我们编写了一组简单的工具,专门为 zip/jar 文件执行安全散列(和验证)。它计算了两个哈希值:
为了实现仅内容哈希,我们使用了 ZipInputStream
遍历 zip 条目。
MessageDigest sha1;
byte[] digest;
for (each zip file entry)
{
if (entry represents a directory)
{
sha1.update( directory name bytes as UTF-8 );
}
else
{
read the entry bytes using ZipInputStream.read()
sha1.update( bytes );
}
}
digest = sha1.digest();
但是请注意,有些文件(如 list )可能包含用于创建 jar 的 ant 版本以及用于编译类的编译器版本等信息。因此,您必须从等效环境进行编译才能使哈希匹配。
最后,这无法解决 zip 文件本身可能包含其他 zip 文件的事实。虽然可以直接让检查满足这一要求并进入嵌套的 zip/jar/war 文件,但我们的实现并非如此。
关于java - 禁止或不允许修改访问时间java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10904265/
我正在尝试使用 npmpublish 命令发布包。但我每次都会收到此错误。 npm ERR! code E403 npm ERR! 403 Forbidden - PUT https://regist
我在 WAMP 上访问我的本地主机(最后是 phpmyadmin)时遇到问题。 当我输入 localhost或 http://127.0.0.1进入我的浏览器,我收到以下消息: Forbidden Y
我正在尝试发送 $ajax,并且我已经得到了它,但是我必须使用我的表单发送文件,无论是否相同,都没关系。尚未找到 csrf token ,并且出现错误。 我的 JavaScript $(doc
我有一个奇怪的问题,我试图使用请求模块废弃某些页面,但这样做时我收到 403 访问被拒绝。但我完全能够使用 Node 的curl 模块来完成此操作。但互联网上的人们认为,它比请求模块更需要性能,因为我
所以,我正在制作一个公共(public)的不和谐机器人,但我的脚本的一部分有问题。我的 kick/ban 命令是用来完成的 $ban @user 它必须在 ping 中完成。由于这是公开的,我真的很想
我在负载均衡器后面有 2 个服务器。此 LB 上配置了 SSL。将近 50 个不同的客户端能够成功连接到我的网站,除了 1 个客户端从浏览器收到禁止 (403) 消息。 经过一番调查,我发现他在代理服
1、禁止计算局部梯度 torch.autogard.no_grad: 禁用梯度计算的上下文管理器。 当确定不会调用Tensor.backward()计算梯度时,设置禁止计算梯度会减少内存消耗。
如果 Moose 的构造函数调用中有额外的参数不是属性,有没有办法死?例如,这个: package Shoe; use Moose; has 'size' => (is => 'ro', isa =
在服务器上,安装了 Nginx。 Let's Encrypt 在 www.domain.com 上运行良好,但不适用于 static.domain.com 使用 PuTTY,当我输入时:sudo le
我使用 emacs 来编辑所有内容。在我的一些 LateX 文档中,我想在编辑表格和代码时自动禁用自动填充模式。基本上,我想要两个标签,例如: %%% BEGIN NO FILL %%%
通过 Nuget,我将 WindowsAzure.Storage 升级到 8.1.1。 然后,我下载了 AzureStorageEmulator 5.1.0.0 客户端。 我的连接字符串: UseDe
Qt documentation说,信号的返回值是不可能的: Signals are automatically generated by the moc and must not be implem
编辑版本 我有一个关于 GPG 的问题,但我写了所有的过程,也许它会对某人有所帮助。 我想:禁止 GPG 命令中的密码提示。 我不想:使用 -c 选项(--对称)。 我有 2 个系统 Linux 和
现在的想法是这样的:在 Java 中为 octalIntegerLiteral我有一个规则 octalNumeral, (integerTypeSuffix optional) 但我想得到一个数字作为
我在 Python 项目中所有模块的开头使用以下内容: import setup_loggers setup_loggers是一个可以做到这一点的模块。 import语句确保无论首先加载哪个模块,记录
我刚刚下载了最新版本的 XAMPP,PHP 版本为 7.2.4。我为 HTML 表单做了一个非常简单的 PHP 验证,当我按下提交时,它会出现以下内容: Access forbidden!You do
我已经成功运行 Vagrant 大约一个星期了。昨晚我运行了 vagrant reload,现在我无法再访问我的网站。 VirtualBox 版本 4.2.16 Vagrant 版本 1.2.7 我的
我使用以下 JavaScript 代码在完成 ajax 后播放音频: $(document).ready(function () { $.ajaxSetup(
我有一个似乎可以在互联网上运行的应用程序。但我接到了一位最终用户的电话,他在使用website时遇到困难。 我要求她发送控制台错误的屏幕截图并收到以下信息: 从 stackoverflow 搜索来看,
我在尝试提交到 svn 存储库时遇到此错误: svn: MKACTIVITY of '/svn/Demo/!svn/act/e2e65cfa-...4165f': 403 Forbidden (htt
我是一名优秀的程序员,十分优秀!