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>

要比较的第二个缓冲区。

返回

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

注解

此方法以不泄露计时信息的方式比较两个缓冲区中的内容是否相等,因此非常适合在加密例程中使用。

仅当 和 right 具有不同长度时left,此方法才会短路并返回 false

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

适用于