我有一个PHP应用程序,其中密码以sha1($ password)的输出形式存储在数据库中,这显然是二进制SHA1哈希的十六进制表示。 (据我所知)
我想将其转换为适用于Apache .htpassword文件的格式,该文件需要是base64编码的二进制值或base64_encode(sha1($ password,true))的输出。
我找到了这个主题:Convert base64'd SHA1 hashes to Hex hashes……它正在执行我需要做的相反操作,并且效果很好。 我尝试更改命令的顺序并使用hex2bin而不是bin2hex,但那行不通:
致命错误:php shell代码中第1行调用未定义的函数hex2bin()
显然,直到PHP 5.4才可用,而此服务器仍在5.3.x上 http://php.net/manual/en/function.hex2bin.php
我想将其转换为适用于Apache .htpassword文件的格式,该文件需要是base64编码的二进制值或base64_encode(sha1($ password,true))的输出。
我找到了这个主题:Convert base64'd SHA1 hashes to Hex hashes……它正在执行我需要做的相反操作,并且效果很好。 我尝试更改命令的顺序并使用hex2bin而不是bin2hex,但那行不通:
致命错误:php shell代码中第1行调用未定义的函数hex2bin()
显然,直到PHP 5.4才可用,而此服务器仍在5.3.x上 http://php.net/manual/en/function.hex2bin.php
以下是真正的问题。我需要将其转换为PERL,最好只使用标准内置模块以保持简单性。我不确定为什么他们在这一步中使用perl,但我正在尝试编辑更大应用程序的一个非常小的部分,而不想立即更改整个应用程序 :)
明确一下,我并不是要将十六进制数转换为二进制数。这是一个十六进制表示的二进制值,存储在perl的“字符串”中:)
提前致谢, 汤米
chomp($encoded)
来消除多余的换行符,但它正在工作,并且这是 结果 ... 不确定链接能持续多久 :) - TommyTheKid