PHP 将十六进制转换为 Base32,反之亦然
PHP Convert Hext To Base32 And Vice Versa
我在将十六进制表示形式转换为基数 32 时遇到问题,反之亦然。
所有在线转换都是基于 JavaScript 的,但我到处搜索后找不到任何基于 PHP 的解决方案:(
我试过 base32Encode 十六进制值,hexdec 然后 base32 encode none 它们实际上有效:(
十六进制:686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e
base32: NBVKR7FBOZ5FYHGCHMHZQI4A225G2B77GL5P5DQ
我在这里需要什么,我需要从十六进制值获取(转换)base32 值,反之亦然,例如从 base 32 获取十六进制值。
就这些了
更新 1:
以下站点可以按照我正在寻找的方式从十六进制编码为 base32。但我不知道他们是怎么做到的。:(
截图:
谢谢
假设您指的是 base36 而不是 base32:
$in16 = '686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e';
$in36 = 'NBVKR7FBOZ5FYHGCHMHZQI4A225G2B77GL5P5DQ';
var_dump(
base_convert($in16, 16, 32),
base_convert($in36, 36, 16)
);
输出:
string(39) "1k6la7sk5r7o000000000000000000000000000"
string(51) "200727aed64d340000000000000000000000000000000000000"
最后所有那些零,闻起来像加密货币。
Sammitch 建议的库工作正常(它与您发布的网站一样符合 RFC 4648),但您需要将 hex2bin()
/bin2hex()
添加到组合中以获得您想要的结果:
require 'path/to/vendor/autoload.php';
use Base32\Base32;
$hex = '686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e';
// Hex to Base32
$to_base32 = Base32::encode(hex2bin($hex));
var_dump($to_base32); // NBVKR7FBOZ5FYHGCHMHZQI4A225G2B77GL5P5DQ=
// Base32 to Hex
$to_hex = bin2hex(Base32::decode($to_base32));
var_dump($to_hex); // 686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e
我在将十六进制表示形式转换为基数 32 时遇到问题,反之亦然。
所有在线转换都是基于 JavaScript 的,但我到处搜索后找不到任何基于 PHP 的解决方案:(
我试过 base32Encode 十六进制值,hexdec 然后 base32 encode none 它们实际上有效:(
十六进制:686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e
base32: NBVKR7FBOZ5FYHGCHMHZQI4A225G2B77GL5P5DQ
我在这里需要什么,我需要从十六进制值获取(转换)base32 值,反之亦然,例如从 base 32 获取十六进制值。
就这些了
更新 1:
以下站点可以按照我正在寻找的方式从十六进制编码为 base32。但我不知道他们是怎么做到的。:(
截图:
谢谢
假设您指的是 base36 而不是 base32:
$in16 = '686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e';
$in36 = 'NBVKR7FBOZ5FYHGCHMHZQI4A225G2B77GL5P5DQ';
var_dump(
base_convert($in16, 16, 32),
base_convert($in36, 36, 16)
);
输出:
string(39) "1k6la7sk5r7o000000000000000000000000000"
string(51) "200727aed64d340000000000000000000000000000000000000"
最后所有那些零,闻起来像加密货币。
Sammitch 建议的库工作正常(它与您发布的网站一样符合 RFC 4648),但您需要将 hex2bin()
/bin2hex()
添加到组合中以获得您想要的结果:
require 'path/to/vendor/autoload.php';
use Base32\Base32;
$hex = '686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e';
// Hex to Base32
$to_base32 = Base32::encode(hex2bin($hex));
var_dump($to_base32); // NBVKR7FBOZ5FYHGCHMHZQI4A225G2B77GL5P5DQ=
// Base32 to Hex
$to_hex = bin2hex(Base32::decode($to_base32));
var_dump($to_hex); // 686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e