Безопасное сравнение строк в Go - программирование
Подтвердить что ты не робот

Безопасное сравнение строк в Go

Является ли встроенным способом постоянного сравнения строк времени в Go?

Я использовал метод Devise.secure_compare, когда мне была нужна эта функциональность в Ruby.

4b9b3361

Ответ 1

Не для строк, а для []byte. См. crypto/subtle, особенно ConstantTimeCompare:

func ConstantTimeCompare(x, y []byte) int

ConstantTimeCompare возвращает 1, если два равных длины, x и y, имеют равное содержание. Принятое время является функцией длины срезов и не зависит от содержимого.

Как вы знаете, вы можете легко преобразовать строку в байтовый фрагмент:

var x []byte = []byte("someString")