Java摘要与外部实用程序的结果不同

Java摘要与外部实用程序的结果不同,第1张

Java摘要与外部实用程序的结果不同

得到它了。Windows文件系统的行为会有所不同,具体取决于过程的体系结构。此文章解释了这一切 -尤其是:

但是,对系统路径进行了硬编码并在64位Windows中运行的32位应用程序呢?您可能会想,他们如何在不更改程序代码的情况下找到新的SysWOW64文件夹。答案是,仿真器透明地将对System32文件夹的调用重定向到SysWOW64文件夹,因此,即使该文件夹被硬编码到System32文件夹(例如C:
Windows
System32),仿真器也将确保使用SysWOW64文件夹代替。因此,可以将使用System32文件夹的相同源代码编译为32位和64位程序代码,而无需进行任何更改。

尝试复制

calc.exe
到其他地方…然后再次运行相同的工具。您将获得与Java相同的结果。 一些
有关Windows文件系统给不同的数据比它给到Java的工具......我敢肯定,这是与它在Windows目录之中,因此很可能处理“不同”。

此外,我用C#复制了它,发现它取决于 您正在运行的流程体系结构 。所以这是一个示例程序:

using System;using System.IO;using System.Security.Cryptography;class Test{    static void Main()    {        using (var md5 = MD5.Create())        { string path = "c:/Windows/System32/Calc.exe"; var bytes = md5.ComputeHash(File.ReadAllBytes(path)); Console.WriteLine(BitConverter.ToString(bytes));        }    }}

这是一个控制台会话(减去来自编译器的聊天):

c:usersjonTest>csc /platform:x86 Test.csc:usersjonTest>test60-B7-C0-FE-AD-45-F2-06-6E-5B-80-5A-91-F4-F0-FCc:usersjonTest>csc /platform:x64 Test.csc:usersjonTest>test10-E4-A1-D2-13-2C-CB-5C-67-59-F0-38-CD-B6-F3-C9


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5056850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存