diff --git a/quic/test_tools/test_ticket_crypter.cc b/quic/test_tools/test_ticket_crypter.cc
index 87ff202..40f28d2 100644
--- a/quic/test_tools/test_ticket_crypter.cc
+++ b/quic/test_tools/test_ticket_crypter.cc
@@ -7,6 +7,7 @@
 #include <cstring>
 
 #include "absl/base/macros.h"
+#include "net/third_party/quiche/src/quic/core/crypto/quic_random.h"
 
 namespace quic {
 namespace test {
@@ -25,22 +26,29 @@
 
 }  // namespace
 
+TestTicketCrypter::TestTicketCrypter()
+    : ticket_prefix_(ABSL_ARRAYSIZE(kTicketPrefix) + 16) {
+  memcpy(ticket_prefix_.data(), kTicketPrefix, ABSL_ARRAYSIZE(kTicketPrefix));
+  QuicRandom::GetInstance()->RandBytes(
+      ticket_prefix_.data() + ABSL_ARRAYSIZE(kTicketPrefix), 16);
+}
+
 size_t TestTicketCrypter::MaxOverhead() {
-  return ABSL_ARRAYSIZE(kTicketPrefix);
+  return ticket_prefix_.size();
 }
 
 std::vector<uint8_t> TestTicketCrypter::Encrypt(absl::string_view in) {
-  size_t prefix_len = ABSL_ARRAYSIZE(kTicketPrefix);
+  size_t prefix_len = ticket_prefix_.size();
   std::vector<uint8_t> out(prefix_len + in.size());
-  memcpy(out.data(), kTicketPrefix, prefix_len);
+  memcpy(out.data(), ticket_prefix_.data(), prefix_len);
   memcpy(out.data() + prefix_len, in.data(), in.size());
   return out;
 }
 
 std::vector<uint8_t> TestTicketCrypter::Decrypt(absl::string_view in) {
-  size_t prefix_len = ABSL_ARRAYSIZE(kTicketPrefix);
+  size_t prefix_len = ticket_prefix_.size();
   if (fail_decrypt_ || in.size() < prefix_len ||
-      memcmp(kTicketPrefix, in.data(), prefix_len) != 0) {
+      memcmp(ticket_prefix_.data(), in.data(), prefix_len) != 0) {
     return std::vector<uint8_t>();
   }
   return std::vector<uint8_t>(in.begin() + prefix_len, in.end());
diff --git a/quic/test_tools/test_ticket_crypter.h b/quic/test_tools/test_ticket_crypter.h
index 5fdfdb9..5785463 100644
--- a/quic/test_tools/test_ticket_crypter.h
+++ b/quic/test_tools/test_ticket_crypter.h
@@ -14,6 +14,7 @@
 // THIS IMPLEMENTATION IS NOT SECURE. It is only intended for testing purposes.
 class TestTicketCrypter : public ProofSource::TicketCrypter {
  public:
+  TestTicketCrypter();
   ~TestTicketCrypter() override = default;
 
   // TicketCrypter interface
@@ -41,6 +42,7 @@
   bool fail_decrypt_ = false;
   bool run_async_ = false;
   std::vector<PendingCallback> pending_callbacks_;
+  std::vector<uint8_t> ticket_prefix_;
 };
 
 }  // namespace test
