파이썬에서 &=
은 무엇입니까? 예를 들어"& ="연산자 란 무엇이며 Twilio가 문자열을 비교할 때 왜 사용합니까?
는 :
for c1, c2 in izip(string1, string2):
result &= c1 == c2
나는 twilio 파이썬 라이브러리에 그것을 발견 : https://github.com/twilio/twilio-python/blob/master/twilio/util.py#L62
왜 그들은 단지 직접 return string1 == string2
을 문자열을 비교하고 각 문자를 비교하지 않는다? 공격자가이 곳을 추측하는 데 걸린 시간을 사용할 수없는 모든 문자의 평가를 강제 하여 Timing Attacks
에 대해 보호하면서
는 두 문자열을 비교 :
정직하게도 어셈블리에 관심이있을 것입니다. 루프 용으로 세미 원자 함수로 줄일 수있는 것처럼 설정되어 있습니다. 동작을 스레드로부터 안전하게 유지하는 데 도움이됩니다. –
그것은 어떤 점에서 여전히 컴파일로 만듭니다. 그래서 생각할 가치가 여전히 있습니다. –
@JeffLangemeier : 문자열이 변경되지 않기 때문에 처음에는 스레드 안전 문제가 없습니다. – Blckknght