CryptographicOperations.FixedTimeEquals 方法

定义

确定两个字节序列在一定时间内是否相等,该时间取决于序列的长度,而不取决于它们的值。

public:
 static bool FixedTimeEquals(ReadOnlySpan<System::Byte> left, ReadOnlySpan<System::Byte> right);
public static bool FixedTimeEquals (ReadOnlySpan<byte> left, ReadOnlySpan<byte> right);
static member FixedTimeEquals : ReadOnlySpan<byte> * ReadOnlySpan<byte> -> bool
Public Shared Function FixedTimeEquals (left As ReadOnlySpan(Of Byte), right As ReadOnlySpan(Of Byte)) As Boolean

参数

left
ReadOnlySpan<Byte>

要比较的第一个缓冲区。

right
ReadOnlySpan<Byte>

要比较的第二个缓冲区。

返回

Boolean

如果 leftright 具有 Length 的相同值以及相同内容,则为 true;否则为 false

注解

此方法以不泄漏计时信息的方式比较两个缓冲区中的内容,使其非常适合用于加密例程。

此方法将短路,仅当长度不同且right长度不同时left返回false

固定时间行为在所有其他情况下都得到保证,包括何时 left 引用 right 同一地址。

适用于