CryptographicOperations.FixedTimeEquals 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
确定两个字节序列在一定时间内是否相等,该时间取决于序列的长度,而不取决于它们的值。
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>
要比较的第二个缓冲区。
返回
如果 left
和 right
具有 Length 的相同值以及相同内容,则为 true
;否则为 false
。
注解
此方法以不泄露计时信息的方式比较两个缓冲区中的内容是否相等,因此非常适合在加密例程中使用。
仅当 和 right
具有不同长度时left
,此方法才会短路并返回 false
。
在所有其他情况下都保证固定时间行为,包括当 和 right
引用同一地址时left
。