Безопасное сравнение строк в Go Является ли встроенным способом постоянного сравнения строк времени в Go? Я использовал метод Devise.secure_compare, когда мне была нужна эта функциональность в Ruby. Ответ 1 Не для строк, а для []byte. См. crypto/subtle, особенно ConstantTimeCompare: func ConstantTimeCompare(x, y []byte) int ConstantTimeCompare возвращает 1, если два равных длины, x и y, имеют равное содержание. Принятое время является функцией длины срезов и не зависит от содержимого. Как вы знаете, вы можете легко преобразовать строку в байтовый фрагмент: var x []byte = []byte("someString")
Ответ 1 Не для строк, а для []byte. См. crypto/subtle, особенно ConstantTimeCompare: func ConstantTimeCompare(x, y []byte) int ConstantTimeCompare возвращает 1, если два равных длины, x и y, имеют равное содержание. Принятое время является функцией длины срезов и не зависит от содержимого. Как вы знаете, вы можете легко преобразовать строку в байтовый фрагмент: var x []byte = []byte("someString")