This improves the test for TimingResistantEqual by adding more relevant edge cases, including:
- Empty string vs non-empty string
- Differences at the beginning of the string
- Additional prefix/suffix length mismatch tests
These cases help ensure the function properly resists timing attacks when comparing secrets of different lengths