我有一个经过数字签名的dll文件。我需要编写一个PowerShell命令,该命令可以使我获得用于数字签名的摘要算法。
我需要的摘要算法信息:
我尝试使用Get-AuthenticodeSignature
,但这并没有为我提供摘要算法信息。
运行以下命令后,我得到以下结果。
Get-AuthenticodeSignature "C:\Program Files\Application Verifier\vrfauto.dll" | Format-List
以上结果:
答案 0 :(得分:0)
所以您要寻找的是
Get-AuthenticodeSignature | %{
$_.SignerCertificate.SignatureAlgorithm.FriendlyName
}
让我们回顾一下如何到达那里。首先,我找到一个具有数字签名的文件。在此示例中,我将使用 PowerShell-6.1.2-win-x64.msi 。
Get-AuthenticodeSignature -FilePath C:\test\PowerShell-6.1.2-win-x64.msi | get-member
我们看到 SignerCertificate
有一个对象SignerCertificate Property System.Security.Cryptography.X509Certificates.X509Certificate2 SignerCertificate {get;}
所以,让我们看看有什么
Get-AuthenticodeSignature -FilePath C:\test\PowerShell-6.1.2-win-x64.msi | %{
$_.SignerCertificate | get-member
}
现在我们看到有一个 SignatureAlgorithm 属性
SignatureAlgorithm Property System.Security.Cryptography.Oid SignatureAlgorithm {get;}
现在我们再深入一遍
Get-AuthenticodeSignature -FilePath C:\test\PowerShell-6.1.2-win-x64.msi | %{
$_.SignerCertificate.SignatureAlgorithm | get-member
}
我们得到了:
FriendlyName Property string FriendlyName {get;set;}
Value Property string Value {get;set;}
我们可以看到两个字符串,因此我们测试哪个更适合我们...结果就是它的友好名称:
Get-AuthenticodeSignature -FilePath C:\test\PowerShell-6.1.2-win-x64.msi | %{
$_.SignerCertificate.SignatureAlgorithm.FriendlyName
}
返回
sha256RSA