модуль ActiveSupport::SecurityUtils
Публичные методы класса
Сравнение строк с постоянной временной сложностью.
Сравниваемые значения должны иметь фиксированную длину, например, строки, уже обработанные с помощью HMAC. Не следует использовать это для строк с переменной длиной, так как это может раскрыть информацию о длине через атаки с подбором времени.
# File activesupport/lib/active_support/security_utils.rb, line 11
def secure_compare(a, b)
return false unless a.bytesize == b.bytesize
l = a.unpack "C#{a.bytesize}"
res = 0
b.each_byte { |byte| res |= byte ^ l.shift }
res == 0
end
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.