我面临着将十六进制表示转换为基数32的问题,反之亦然。
所有的在线转换都是基于JavaScript的,但我找不到任何基于PHP的解决方案。
我已经尝试了base32Encode十六进制值,十六进制解码,然后base32编码,他们都没有实际工作:(
十六进制: 686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e
base32: NBVKR7FBOZ5FYHGCHMHZQI4A225G2B77GL5P5DQ
这里我需要的是从十六进制值获取(转换) base32值,反之亦然,就像从基数32获取十六进制值一样。
就这样
更新1:
下面的网站可以编码从十六进制到base32的方式,这正是我正在寻找,但。但我不知道他们是怎么做到的。:(
截图:

谢谢
发布于 2021-04-24 06:54:41
Sammitch建议的库运行良好(它与您发布的站点一样符合RFC4648),但您需要将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发布于 2021-04-24 04:40:48
假设您指的是base36而不是base32:
$in16 = '686aa8fca1767a5c1cc23b0f982380d6ba6d07ff32fafe8e';
$in36 = 'NBVKR7FBOZ5FYHGCHMHZQI4A225G2B77GL5P5DQ';
var_dump(
base_convert($in16, 16, 32),
base_convert($in36, 36, 16)
);输出:
string(39) "1k6la7sk5r7o000000000000000000000000000"
string(51) "200727aed64d340000000000000000000000000000000000000"所有这些结尾的零,闻起来像加密货币。
https://stackoverflow.com/questions/67235354
复制相似问题