检测伪随机数?

我的客户端代码生成UUID并将其发送到服务器。

例如,'6ea140caa83b485f9c98ebaacfb536ce' 是一个有效的uuid4,可以发送回服务器。

有没有办法检测或防止用户发送回一个有效但“用户生成”的uuid4,比如 'babebabebabe4abebabebabebabebabe'

例如,一种防止某些类型这类情况的方法是查看数字的二进制表示中0和1的出现次数。对于像 '00000000000040000000000000000000' 这样的字符串可能有效,但并非对所有字符串都有效。


回答:

这取决于具体情况…

没有办法完全确定,但根据你使用的UUID版本/子类型,可能会有方法检测到一些不规则的值:

https://www.rfc-editor.org/rfc/rfc4122#section-4.1 定义了UUID的原始版本1,并规定了uuid字段的布局…

你可以例如检查版本和变体字段是否有效…

如果你的UUID生成实际上使用了版本1,除了第一次检查版本和变体外,你还可以测试时间戳是否在有效范围内…例如,问题中的UUID不太可能是在1600年生成的…或者是未来的时间

所以可以应用这样的测试来检查该值是否实际有意义,或者完全是胡乱生成的…它不能防止有人思考:好的…让我们分析一下并提供一个手动选择的值来满足所有条件

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注