diff --git a/quic/core/quic_utils.cc b/quic/core/quic_utils.cc
index 07565ee..70692f5 100644
--- a/quic/core/quic_utils.cc
+++ b/quic/core/quic_utils.cc
@@ -551,20 +551,6 @@
 
 QuicUint128 QuicUtils::GenerateStatelessResetToken(
     QuicConnectionId connection_id) {
-  if (!GetQuicRestartFlag(quic_use_hashed_stateless_reset_tokens)) {
-    uint64_t data_bytes[3] = {0, 0, 0};
-    static_assert(sizeof(data_bytes) >= kQuicMaxConnectionIdAllVersionsLength,
-                  "kQuicMaxConnectionIdAllVersionsLength changed");
-    memcpy(data_bytes, connection_id.data(), connection_id.length());
-    // This is designed so that the common case of 64bit connection IDs
-    // produces a stateless reset token that is equal to the connection ID
-    // interpreted as a 64bit unsigned integer, to facilitate debugging.
-    return MakeQuicUint128(
-        QuicEndian::NetToHost64(sizeof(uint64_t) ^ connection_id.length() ^
-                                data_bytes[1] ^ data_bytes[2]),
-        QuicEndian::NetToHost64(data_bytes[0]));
-  }
-  QUIC_RESTART_FLAG_COUNT(quic_use_hashed_stateless_reset_tokens);
   return FNV1a_128_Hash(
       QuicStringPiece(connection_id.data(), connection_id.length()));
 }
diff --git a/quic/core/quic_utils_test.cc b/quic/core/quic_utils_test.cc
index a2bc403..62cfbd0 100644
--- a/quic/core/quic_utils_test.cc
+++ b/quic/core/quic_utils_test.cc
@@ -266,9 +266,6 @@
   QuicUint128 token2 = QuicUtils::GenerateStatelessResetToken(connection_id2);
   EXPECT_EQ(token1a, token1b);
   EXPECT_NE(token1a, token2);
-  if (!GetQuicRestartFlag(quic_use_hashed_stateless_reset_tokens)) {
-    EXPECT_EQ(token1a, MakeQuicUint128(0, 1));
-  }
 }
 
 }  // namespace
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 1247eaf..5edc410 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -472,7 +472,6 @@
   // Enable necessary flags.
   SetQuicReloadableFlag(quic_supports_tls_handshake, true);
   SetQuicReloadableFlag(quic_simplify_stop_waiting, true);
-  SetQuicRestartFlag(quic_use_hashed_stateless_reset_tokens, true);
 }
 
 void QuicEnableVersion(ParsedQuicVersion parsed_version) {
