簡體   English   中英

將Perl MD5摘要轉換為PowerShell

[英]Convert Perl MD5 Digest and Create to PowerShell

我正在嘗試將Perl中的以下內容轉換為PowerShell,我被困在MD5摘要和創建中。

timestamp=1283473470
key='this-is-my-key'
secret='secret'
perl -e  "use Digest::MD5 qw(md5 md5_hex); print md5_hex('$key' . '$secret' . $timestamp);"

出於測試目的,我將時間戳設置為靜態數字。 這樣,我可以比較Perl和PowerShell的內容。 我已經嘗試了一些MD5和[System.Security.Cryptography.HashAlgorithm]嘗試,但是到目前為止,我只想讓自己感到困惑。

在Perl ...

> perl -e  "use Digest::MD5 qw(md5 md5_hex); print md5_hex('this-is-my-key' . 'secret' . '1283473470');"
> a135923fb8e579463f312b69528d243c

在PowerShell中

>_ 'this-is-my-key.secret.1283473470' | Get-Hash


Algorithm: MD5


Path       :
HashString : 04BF4CA4BF3E34C83F0B11970205580D

PowerShell社區擴展中有一個Get-Hash cmdlet。 試試看。

PS> 'this-is-my-key.secret.1283473470' | Get-Hash


Algorithm: MD5


Path       :
HashString : 04BF4CA4BF3E34C83F0B11970205580D

或如果字符串需要解釋為ASCII:

PS> $foo = 'THIS-is-my-keysecret1283473470'
PS> $foo.ToLower() | Get-Hash -StringEncoding ascii


Algorithm: MD5


Path       :
HashString : A135923FB8E579463F312B69528D243C

好的,這在很大程度上是由於Keith Hill的指示。 請注意,在這種情況下,我發現最好在任何地方都指定[string],這或多或少是出於一致的考慮,只需要在兩行中指定即可。

[string]$timestamp=1283473470
[string]$key='this-is-my-key'
[string]$secret='secret'
[string]$string=$key+$secret+$timestamp
[string]$CAPhash=$string | Get-Hash -StringEncoding ascii
[string]$hash=$CAPhash.ToLower()
$hash

我不確定是否可以將最后兩行合並為一個。 目前,我對自己所擁有的感到滿意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM