diff --git a/web/database/utils/constants.js b/web/database/utils/constants.js
--- a/web/database/utils/constants.js
+++ b/web/database/utils/constants.js
@@ -1,3 +1,4 @@
 // @flow
 
 export const SQLITE_CONTENT = 'sqliteFileContent';
+export const SQLITE_ENCRYPTION_KEY = 'encryptionKey';
diff --git a/web/database/worker/db-worker.js b/web/database/worker/db-worker.js
--- a/web/database/worker/db-worker.js
+++ b/web/database/worker/db-worker.js
@@ -12,7 +12,8 @@
   type WorkerRequestProxyMessage,
 } from '../../types/worker-types.js';
 import { getSQLiteDBVersion } from '../queries/db-queries.js';
-import { SQLITE_CONTENT } from '../utils/constants.js';
+import { SQLITE_CONTENT, SQLITE_ENCRYPTION_KEY } from '../utils/constants.js';
+import { generateDatabaseCryptoKey } from '../utils/worker-crypto-utils.js';
 
 const localforageConfig: PartialConfig = {
   driver: localforage.INDEXEDDB,
@@ -59,6 +60,12 @@
   } else if (message.type === workerRequestMessageTypes.INIT) {
     await initDatabase(message.sqljsFilePath, message.sqljsFilename);
     return;
+  } else if (
+    message.type === workerRequestMessageTypes.GENERATE_DATABASE_ENCRYPTION_KEY
+  ) {
+    const cryptoKey = await generateDatabaseCryptoKey();
+    await localforage.setItem(SQLITE_ENCRYPTION_KEY, cryptoKey);
+    return;
   }
 
   throw new Error('Request type not supported');
diff --git a/web/types/worker-types.js b/web/types/worker-types.js
--- a/web/types/worker-types.js
+++ b/web/types/worker-types.js
@@ -4,6 +4,7 @@
 export const workerRequestMessageTypes = Object.freeze({
   PING: 0,
   INIT: 1,
+  GENERATE_DATABASE_ENCRYPTION_KEY: 2,
 });
 
 export type PingWorkerRequestMessage = {
@@ -17,9 +18,14 @@
   +sqljsFilename: ?string,
 };
 
+export type GenerateDatabaseEncryptionKeyRequestMessage = {
+  +type: 2,
+};
+
 export type WorkerRequestMessage =
   | PingWorkerRequestMessage
-  | InitWorkerRequestMessage;
+  | InitWorkerRequestMessage
+  | GenerateDatabaseEncryptionKeyRequestMessage;
 
 export type WorkerRequestProxyMessage = {
   +id: number,