将base64编码的md5转换回powershell

时间:2017-03-14 22:34:02

标签: powershell hash

(免责声明:This SO question是我要问的,但我没有从根本上理解他们是如何实现结果所以我不知道如何在Powershell中复制该过程。)

基本上,我有一系列Base64编码的MD5哈希值(例如1B2M2Y8AsgTpgAmY7PhCfg==),但我需要将它们转换回Powershell中MD5所处的格式(例如d41d8cd98f00b204e9800998ecf8427e)。

我可以在powershell中重新创建编码过程:

$string = ""
$bytes = [System.Text.Encoding]::UTF8.GetBytes($string)
$Hasher = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
$md5 = $Hasher.ComputeHash($bytes)
$base64 = [System.Convert]::ToBase64String($md5)

但我无法弄清楚如何走另一条道路。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

所有这些带[] ::语法的函数都是基本的.NET方法。您可以参考MSDN上的System.Convert类的文档。

https://msdn.microsoft.com/en-us/library/system.convert.tobase64string(v=vs.110).aspx

如果您查看该页面上提及Base64的方法,您会发现一个名为FromBase64String的方法。你可以在$md5变量上调用它来获取一个等同于原始$md5FromBase64 = [System.Convert]::FromBase64String($base64) 变量的字节数组。

(require '[org.httpkit.client :as http])
(pr-str (clojure.core/deref (http/get "http://google.com")))) 

   => "{:opts {:method :get, :url \"http://www.google.com/\", :query-params nil, :form-params nil, :trace-re".....