生成思科“秘密”密碼雜湊的程式碼?
有沒有人有一個指向思科用來為“啟用秘密”之類的東西生成密碼雜湊的程式碼(或只是算法)的指針?
我不想闖入任何東西。我正在嘗試在給定明文密碼的情況下生成適當的“啟用機密”行,而不是使用散列密碼解碼現有的“啟用機密”行。我需要這個用於我正在開發的自動配置文件生成器(Netomata Config Generator)。
基本上,我想要的是用於 Web 伺服器的 Cisco 等效的“htpasswd”命令。
例如,當我將以下帶有明文密碼的命令放入 Cisco 配置時:
enable secret foobar
然後當我執行“顯示配置”命令時(假設我啟用了“服務密碼加密”),我看到的是這樣的:
enable secret 5 $1$pdQG$0WzLBXV98voWIUEdIiLm11
我想要將“foobar”翻譯成“5”的程式碼 $ 1 $ pdQG$0WzLBXV98voWIUEdIiLm11",這樣我就可以在我的配置生成工具中生成已經散列的密碼,而不是將明文密碼放在生成的配置中並等待路由器生成散列。
我認為散列結果中的“5”是某種散列算法標識符。如果思科目前或歷史上使用過其他雜湊算法,那麼我也希望擁有這些算法的程式碼。
思科似乎需要 4 個字元的鹽。預設情況下,如果沒有“
-salt
salt ”參數,openssl
將生成一個 8 個字元的 salt。您可以使用
openssl
適當的隨機 4 字元鹽生成 Cisco 兼容的“明文”散列,但是,如下所示:openssl passwd -salt `openssl rand -base64 3` -1 "cleartext"
"
openssl rand -base64 3
" 子命令生成 3 個隨機字節,然後將它們編碼為 base64 格式,從而為您提供 4 個可列印字元(正是您需要的與 Cisco 兼容的 salt)。感謝 Murali Suriar 的回答(在本頁的其他地方),這讓我開始走上通往這個解決方案的正確道路。
根據這個網站,OpenSSL 命令行實用程序似乎提供了您需要的功能:
$ openssl passwd -1 -salt pdQG -table foobar foobar $1$pdQG$0WzLBXV98voWIUEdIiLm11 $
並且庫本身可能有一個等效的功能。
我不確定 IOS 是否要求您使用特定的鹽值,但從技術上講,只要您在“啟用機密”命令中提供的字元串是有效的 MD5 密碼摘要,就沒有理由這樣做。如果你有機會測試,我很想知道你的結果。