AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 820300
Accepted
user6722022
user6722022
Asked: 2016-12-13 11:58:13 +0800 CST2016-12-13 11:58:13 +0800 CST 2016-12-13 11:58:13 +0800 CST

为什么 PowerShell 中的 MacTripleDes 算法输出不稳定?

  • 772

我正在使用 powershell 中的几种不同算法检查文件哈希。当我使用 MacTripleDes 时,我总是得到不同的哈希值。所有其他的,如 SHA256 或 MD5 总是给出可靠的答案。您可以在自己的计算机上复制该问题:

"this is a test" | out-file test.txt
get-filehash test.txt -algorithm sha256
get-filehash test.txt -algorithm sha256
get-filehash test.txt -algorithm mactripledes
get-filehash test.txt -algorithm mactripledes

前两个散列得到相同的散列值,但后两个散列得到不同的值。MacTripleDes 应该以不同的方式使用吗?

Algorithm       Hash                                                                   Path                                                                                                                      
---------       ----                                                                   ----                                                                                                                      
SHA256          3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51       C:\temp\test.txt                                                                                                          
SHA256          3F8CB2CDF03347329CAB0C80A6CE3B01EF3B17AF02E0F6E101FA67CE63729F51       C:\temp\test.txt                                                                                                          
MACTRIPLEDES    904D74A529C7A739                                                       C:\temp\test.txt                                                                                                          
MACTRIPLEDES    AF720778A2C878A2                                                       C:\temp\test.txt   
hash powershell
  • 1 1 个回答
  • 1230 Views

1 个回答

  • Voted
  1. Best Answer
    Ryan Ries
    2016-12-13T13:51:59+08:002016-12-13T13:51:59+08:00

    MACTripleDES 不同于Get-FileHashcmdlet 提供的其他算法。老实说,我不确定它为什么包含在 cmdlet 中。它不适合其他人,IMO。

    SHA1、SHA256、MD5、RIPEMD等,这些都是常规的哈希函数。他们获取一些任意长度的数据并创建代表该数据的固定长度摘要。MACTripleDES 是不同的,因为它不仅仅是一个散列算法。它的名称中有 TripleDES,3DES 是一种加密算法,而不是散列算法。散列函数和加密函数的最大区别在于加密可以用密钥反转。哈希是单向函数。

    MAC代表消息认证码。这是用于验证消息的代码。以验证它没有被篡改。MAC 被设计为从一条消息到另一条消息是短暂的或唯一的。

    查看构造函数:

     public MACTripleDES() {
            KeyValue = new byte[24]; 
            Utils.StaticRandomNumberGenerator.GetBytes(KeyValue);
    
            // Create a TripleDES encryptor 
            des = TripleDES.Create();
            HashSizeValue = des.BlockSize; 
    
            m_bytesPerBlock = des.BlockSize/m_bitsPerByte;
            // By definition, MAC-CBC-3DES takes an IV=0.  C# zero-inits arrays,
            // so all we have to do here is define it. 
            des.IV = new byte[m_bytesPerBlock];
            des.Padding = PaddingMode.Zeros; 
            ...
    

    StaticRandomNumberGenerator 生成随机数...随机数意味着每次运行的结果都会不同。

    • 18

相关问题

  • 如何知道哪些文件为使用 Windows GPO 的散列的白名单应用程序的安装程序指定排除项?

  • md5sum 重复为同一台机器上的同一文件提供不同的校验和

  • 网站文件更改时通知的实用程序

  • 为 crypt 启用基于河豚的散列支持

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve