小编Tom*_*Kid的帖子

在PERL中将SHA1十六进制转换为base64编码(对于Apache htpasswd)

我有一个PHP应用程序,其密码存储在数据库中作为sha1($ password)的输出,这显然是二进制SHA1哈希的十六进制表示.(据我所知)

我想将其转换为兼容Apache .htpassword文件的格式,它需要是base64编码的二进制值或base64_encode的输出(sha1($ password,true)).

我找到了这个主题:将base64'd SHA1哈希转换为Hex哈希 ......这与我需要做的相反,而且效果很好.我试图更改命令的顺序并使用hex2bin而不是bin2hex,但这不起作用:

致命错误:在第1行的php shell代码中调用未定义的函数hex2bin()

显然,直到PHP 5.4才可用,并且此服务器仍在5.3.x http://php.net/manual/en/function.hex2bin.php

这是真正的问题.我实际上需要它在PERL中转换,最好只使用标准的内置模块来保持一切简单.我不确定为什么他们在这一步中使用perl,但是我正在尝试编辑一个更大的应用程序的一小部分,并且不想改变整个事情:)

为了清楚起见,我不是试图将十六进制数转换为二进制数.这是二进制值的十六进制表示,存储在perl"string"中:)

先谢谢你,汤米

perl sha1

4
推荐指数
1
解决办法
3733
查看次数

标签 统计

perl ×1

sha1 ×1