[英]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.