Oauth需要一个随机的64位无符号数,编码为十进制格式的ASCII字符串.你们能用PHP帮助我实现这个目标吗?谢谢
我正在使用内置的OpenSSL库从数字证书中提取序列,但是,我无法精确地将此数字转换为十六进制.
提取的数字最初是十进制的,但我需要以十六进制表示.
我想兑换的号码是:114483222461061018757513232564608398004
这是我尝试过的:
dechex() 没有用,它返回: 7fffffffffffffff 我能得到的最接近的是来自php.net页面的这个函数,但它并没有转换它的部分整数.
function dec2hex($dec) {
$hex = ($dec == 0 ? '0' : '');
while ($dec > 0) {
$hex = dechex($dec - floor($dec / 16) * 16) . $hex;
$dec = floor($dec / 16);
}
return $hex;
}
echo dec2hex('114483222461061018757513232564608398004');
//Result: 5620aaa80d50fc000000000000000000
Run Code Online (Sandbox Code Playgroud)
这是我所期待的:
我可以在这里看到更正转换:https: //www.mathsisfun.com/binary-decimal-hexadecimal-converter.html
我需要一个PHP解决方案.
在Google本地列表中,有一个URL可以将人们直接带到显示商家评论的弹出窗口。这是一个例子:
每个营业地点在 URL 中都有一个数字 ID(在示例中为 12682026813239828050),并在参数中包含该数字的十六进制表示形式#lrd。
我拥有所有数字 ID,并且需要通过确定十六进制段的形成方式来生成这些 URL。对于 ID 可以用 16 个十六进制字符表示的位置,这很容易。URL 段只是 0x0:0x[hexstring],例如:
4134566830992571874 => 0x0:0x3960eea07d6cbe00
Run Code Online (Sandbox Code Playgroud)
但是当数字太长时,它会被分成两个十六进制字符串,并且我无法确定第一个字符串的来源。我举了两个例子:
14384749138104818286 => 0x872b0445e4ee5e9b:0xc7a0e5209fd81a6e
15716027411522919173 => 0x872b00074aa36265:0xda1a8ba9e8201b05
Run Code Online (Sandbox Code Playgroud)
第二个十六进制字符串转换为 CLOSE 数字。在示例中:
c7a0e5209fd81a6e => 14384749138104818 (missing the last 3 digits)
da1a8ba9e8201b05 => 15716027411522918 (missing the last 3 digits and off by 1000)
Run Code Online (Sandbox Code Playgroud)
这是一个成功转换它们的网站:https://pleper.com/index.php? do=tools&sdo=google_review_link&url=4134566830992571874
谁能帮我确定这些生成的方法?如果有另一个堆栈站点更适合于此,请也指导我那里。谢谢你!