encryptedValue === '') { $sharedSecret = random_bytes(\strlen($this->value)); $this->encryptedValue = base64_encode($this->value ^ $sharedSecret) . ':' . base64_encode($sharedSecret); } return $this->encryptedValue; } /** * The unencrypted value of the token. Used for decrypting an already * encrypted token. */ public function getDecryptedValue(): string { $token = explode(':', $this->value); if (\count($token) !== 2) { return ''; } $obfuscatedToken = $token[0]; $secret = $token[1]; return base64_decode($obfuscatedToken) ^ base64_decode($secret); } }