【发布时间】:2020-02-23 16:50:41
【问题描述】:
根据我目前正在查看的一些文档,我需要将带有标签 x-mod-nonce 的标头设置为每个请求的唯一值 示例标题:
x-mod-nonce: 28154b2-9c62b93cc22a-24c9e2-5536d7d
我想用 uniqid 函数确实得到了这种类型的值,但我觉得我不太明白。
有人可以提示我如何做的一些例子或让我自己做吗?
【问题讨论】:
根据我目前正在查看的一些文档,我需要将带有标签 x-mod-nonce 的标头设置为每个请求的唯一值 示例标题:
x-mod-nonce: 28154b2-9c62b93cc22a-24c9e2-5536d7d
我想用 uniqid 函数确实得到了这种类型的值,但我觉得我不太明白。
有人可以提示我如何做的一些例子或让我自己做吗?
【问题讨论】:
我需要将带有标签 x-mod-nonce 的标头设置为每个请求的唯一值,并带有示例标头
用header()设置你的标题
<?php
$unique_value = bin2hex(random_bytes(10));
header("x-mod-nonce: " . $unique_value);
您还可以设置一个与问题中提到的模式相似的字符串,如下所示:
$pattern = bin2hex(random_bytes(10)) . "-" . bin2hex(random_bytes(10)) . "-" . bin2hex(random_bytes(10)) . "-" . bin2hex(random_bytes(10))
【讨论】:
random_bytes() 而不是uniqid()(不是加密安全的)
uniqid() 的任何引用,因为在这种情况下使用它不是一个好的功能。您还需要将 random_bytes() 的结果转换为 ascii 字符。可以通过使用bin2hex() 将其转换为十六进制来完成,如下所示:bin2hex(random_bytes(16)) 其中16 是您想要返回的字节数。