-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfaq.html
More file actions
377 lines (337 loc) · 22 KB
/
Copy pathfaq.html
File metadata and controls
377 lines (337 loc) · 22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- Favicons -->
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<title>FAQ — DB Browser (SQLCipher) for Windows</title>
<meta name="description" content="Frequently asked questions about the portable DB Browser (SQLCipher) build for Windows: downloads (CAPTCHA), SQLCipher, errors, SmartScreen/AV, CSV import/export, performance and migration.">
<link rel="canonical" href="https://db-browser.github.io/faq.html">
<!-- Open Graph -->
<meta property="og:title" content="FAQ — DB Browser (SQLCipher) for Windows">
<meta property="og:description" content="Answers to common questions about the Windows portable SQLCipher build: download via CAPTCHA, how to open encrypted DBs, fix \"wrong key\", performance tips and more.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://db-browser.github.io/faq.html">
<meta property="og:image" content="https://db-browser.github.io/og-image.png">
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="FAQ — DB Browser (SQLCipher) for Windows">
<meta name="twitter:description" content="Common questions about the portable SQLCipher build for Windows: downloads, encryption, errors, import/export and performance.">
<meta name="twitter:image" content="https://db-browser.github.io/og-image.png">
<meta name="author" content="Community / Unofficial resource">
<meta name="last-modified" content="">
<!-- Google tag (GA4) + Consent Mode v2: load regardless of consent, default denied -->
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'wait_for_update': 500
});
</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-N1MPKLJ6KC"></script>
<script>
gtag('js', new Date());
gtag('config', 'G-N1MPKLJ6KC', { 'anonymize_ip': true });
</script>
<!-- Inline critical CSS (matches your sample) -->
<style>
:root{
--bg:#ffffff;
--text:#0b2545;
--muted:#6b7280;
--accent:#0b63a5;
--accent-2:#f7a21a;
--card:#f8fafc;
--radius:10px;
--maxwidth:1100px;
--focus: 3px solid rgba(11,99,165,0.15);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial;font-size:16px;line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
header{background:linear-gradient(180deg,#ffffff 0%, #f7fbff 100%);border-bottom:1px solid #e6eef6}
.wrap{max-width:var(--maxwidth);margin:0 auto;padding:20px}
.site-header{display:flex;align-items:center;gap:18px;padding:10px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand:hover{text-decoration:none}
nav{margin-left:auto}
.nav-list{display:flex;gap:8px;flex-wrap:wrap}
.nav-list a{padding:6px 10px;border-radius:8px;text-decoration:none;color:var(--text);font-weight:600;font-size:14px;line-height:1}
.nav-list a:focus{outline:var(--focus)}
main{padding:28px 20px}
.hero{display:grid;gap:18px;grid-template-columns:1fr;align-items:stretch}
.kicker{color:var(--muted);font-weight:600;font-size:13px}
.title{font-size:30px;margin:4px 0 6px;color:var(--text);line-height:1.2}
.lead{color:var(--muted);max-width:75ch}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;border:0;background:var(--accent);color:white;font-weight:700;text-decoration:none;cursor:pointer}
.btn.secondary{background:#eef6fb;color:var(--accent);border:1px solid #dbeefc}
.btn:focus{outline:var(--focus)}
.card{background:var(--card);padding:16px;border-radius:var(--radius);box-shadow:0 1px 0 rgba(11,99,165,0.03)}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (max-width:900px){ .grid{grid-template-columns:1fr} }
details{padding:12px;border-radius:10px;background:#fff;border:1px solid #e6eef6}
details + details{margin-top:10px}
summary{cursor:pointer;font-weight:700;color:var(--text)}
details p{margin:8px 0 0;color:var(--muted)}
footer{padding:24px 20px;border-top:1px solid #e6eef6;margin-top:40px}
.footer-grid{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.muted{color:var(--muted);font-size:14px}
/* cookie banner */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;background:linear-gradient(180deg,#fffefe,#f7fbff);padding:12px;border-radius:12px;box-shadow:0 10px 30px rgba(11,99,165,0.08);display:flex;align-items:center;gap:12px;z-index:999}
.cookie-text{flex:1}
a:focus,button:focus{outline-offset:3px}
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
</style>
<!-- Inline SVG symbols -->
<svg style="display:none" aria-hidden="true">
<symbol id="icon-logo" viewBox="0 0 64 64">
<rect x="6" y="14" width="52" height="36" rx="4" fill="currentColor" />
<path d="M18 22h28M18 30h28M18 38h16" stroke="#fff" stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="icon-download" viewBox="0 0 24 24"><path d="M12 3v10" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M5 13l7 7 7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M21 21H3" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></symbol>
<symbol id="icon-lock" viewBox="0 0 24 24"><rect x="3" y="11" width="18" height="10" rx="2" stroke="currentColor" stroke-width="2" fill="none"/><path d="M7 11V8a5 5 0 0110 0v3" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></symbol>
<symbol id="icon-db" viewBox="0 0 24 24"><ellipse cx="12" cy="6" rx="9" ry="3" stroke="currentColor" stroke-width="2" fill="none"/><path d="M3 6v6c0 1.7 4 3 9 3s9-1.3 9-3V6" stroke="currentColor" stroke-width="2" fill="none"/></symbol>
<symbol id="icon-close" viewBox="0 0 24 24"><path d="M6 6l12 12M6 18L18 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></symbol>
<symbol id="icon-check" viewBox="0 0 24 24"><path d="M20 6L9 17l-5-5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></symbol>
</svg>
<!-- JSON-LD: BreadcrumbList + FAQPage (no direct file URLs) -->
<script type="application/ld+json">
{
"@context":"https://schema.org",
"@graph":[
{
"@type":"BreadcrumbList",
"itemListElement":[
{"@type":"ListItem","position":1,"name":"Home","item":"https://db-browser.github.io/"},
{"@type":"ListItem","position":2,"name":"FAQ","item":"https://db-browser.github.io/faq.html"}
]
},
{
"@type":"FAQPage",
"mainEntity":[
{"@type":"Question","name":"Is this an official build?","acceptedAnswer":{"@type":"Answer","text":"No. This is an unofficial community resource focused on a Windows portable build that includes SQLCipher support. Always verify downloads and refer to the official repository for authoritative information."}},
{"@type":"Question","name":"Is there an installer?","acceptedAnswer":{"@type":"Answer","text":"We focus on a portable Windows build (no installation required). If you specifically need an installer, check the official project and community releases."}},
{"@type":"Question","name":"How do I download the portable build?","acceptedAnswer":{"@type":"Answer","text":"All downloads are consolidated on the Download page and protected by a CAPTCHA gate to prevent automated scraping. We do not expose direct file links on the site."}},
{"@type":"Question","name":"Which Windows versions are supported?","acceptedAnswer":{"@type":"Answer","text":"The portable build targets Windows 10 and Windows 11. For older versions, consult the official project and test cautiously."}},
{"@type":"Question","name":"How do I open an existing SQLCipher database?","acceptedAnswer":{"@type":"Answer","text":"Provide the correct passphrase and ensure SQLCipher parameters (page size, KDF, HMAC) match how the DB was created. See the 'Open an Encrypted DB' guide for details."}},
{"@type":"Question","name":"I see ‘wrong key’ when opening a DB — what to do?","acceptedAnswer":{"@type":"Answer","text":"This usually indicates a parameter mismatch rather than a bad password. Verify page size, KDF and HMAC settings and try again. See the 'Wrong key errors' guide."}},
{"@type":"Question","name":"SmartScreen or antivirus warns about the EXE — is it safe?","acceptedAnswer":{"@type":"Answer","text":"Portable tools may trigger SmartScreen/AV prompts. Unblock the file in Properties or whitelist it in your AV after verifying the source and checksums where available."}},
{"@type":"Question","name":"Can I import/export CSV?","acceptedAnswer":{"@type":"Answer","text":"Yes. Use the Import/Export features. For large datasets consider chunked imports and indices. See the CSV Import/Export guide."}},
{"@type":"Question","name":"Performance feels slow — how can I improve it?","acceptedAnswer":{"@type":"Answer","text":"Review PRAGMAs, run VACUUM/ANALYZE after bulk imports, and ensure indices are in place. See the Performance Tips guide for practical settings."}},
{"@type":"Question","name":"How do I migrate from plain SQLite to SQLCipher?","acceptedAnswer":{"@type":"Answer","text":"Follow a structured process: back up, create a new encrypted DB with standardized parameters, import data, verify and swap. See the Migrate to SQLCipher guide."}},
{"@type":"Question","name":"Do you support macOS or Linux?","acceptedAnswer":{"@type":"Answer","text":"This resource focuses on a Windows portable build. For macOS/Linux options and builds, refer to the official project and other tools listed on the Alternatives page."}},
{"@type":"Question","name":"What about analytics and cookies?","acceptedAnswer":{"@type":"Answer","text":"We load GA4 with Consent Mode v2. By default analytics storage is denied until you accept in the cookie banner. You can change your choice anytime in Cookie settings."}}
]
}
]
}
</script>
</head>
<body>
<header>
<div class="wrap site-header" role="banner">
<a class="brand" aria-label="site brand" href="/">
<svg width="44" height="44" viewBox="0 0 64 64" fill="var(--accent)"><use href="#icon-logo"></use></svg>
<div>
<div style="font-size:18px;margin:0;font-weight:700;color:var(--text)">DB Browser (SQLCipher) — Windows</div>
<div class="muted" style="font-size:13px">Portable download, guides, troubleshooting</div>
</div>
</a>
<nav aria-label="Main Navigation">
<div class="nav-list">
<a href="/download.html">Download</a>
<a href="/getting-started.html">Getting Started</a>
<a href="/encrypt-decrypt-sqlcipher.html">Encrypt / Decrypt</a>
<a href="/troubleshooting.html">Troubleshooting</a>
<a href="/migrate-to-sqlcipher.html">Migrate</a>
<a href="/best-practices-security.html">Security</a>
<a href="/alternatives.html">Alternatives</a>
<a href="/faq.html" aria-current="page">FAQ</a>
<a href="/about.html">About</a>
</div>
</nav>
<div class="mobile-nav" style="display:none">
<button aria-label="open menu" class="btn secondary" onclick="document.querySelector('.nav-list').style.display='flex'">Menu</button>
</div>
</div>
</header>
<main class="wrap" id="main">
<!-- Hero -->
<section class="hero card" aria-labelledby="hero-title">
<div>
<div class="kicker">Answers to common questions</div>
<h1 id="hero-title" class="title">Frequently Asked Questions (FAQ)</h1>
<p class="lead">Find quick answers about the Windows portable SQLCipher build: how to download via CAPTCHA, open encrypted databases, resolve ‘wrong key’, handle SmartScreen/AV, import/export CSV, improve performance, and migrate securely.</p>
<div class="cta-row">
<a class="btn" href="/download.html" title="Get the Portable SQLCipher build">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" style="margin-right:6px"><use href="#icon-download"></use></svg> Get Portable (SQLCipher)
</a>
<a class="btn secondary" href="/troubleshooting.html">Troubleshooting hub</a>
</div>
<p class="muted" style="margin-top:12px">All downloads are protected by a CAPTCHA gate on the <a href="/download.html">Download page</a>. No direct file links are exposed.</p>
</div>
</section>
<!-- FAQ list -->
<section style="margin-top:18px" class="card">
<h2 style="margin:0 0 6px 0">General</h2>
<details open>
<summary>Is this an official build?</summary>
<p>No. This is an unofficial community resource focused on a Windows portable build that includes SQLCipher support. Always verify downloads and check the <a href="https://github.com/sqlitebrowser/sqlitebrowser" rel="noopener nofollow">official repository</a> for authoritative information.</p>
</details>
<details>
<summary>Is there an installer?</summary>
<p>We focus on a portable Windows build (no installation). If you specifically need an installer, consult the official project/community releases.</p>
</details>
<details>
<summary>Which Windows versions are supported?</summary>
<p>The portable build targets Windows 10 and Windows 11. For older versions, test cautiously and refer to official notes.</p>
</details>
</section>
<section style="margin-top:18px" class="card">
<h2 style="margin:0 0 6px 0">Downloads & security</h2>
<details>
<summary>How do I download the portable build?</summary>
<p>Go to the <a href="/download.html">Download page</a>. We use a CAPTCHA gate to prevent automated scraping. No direct file links are present on the site.</p>
</details>
<details>
<summary>Why is there a CAPTCHA?</summary>
<p>It reduces bot scraping and keeps links healthy. After successful verification, the widget opens the download in a new tab.</p>
</details>
<details>
<summary>SmartScreen or antivirus warns about the EXE — what should I do?</summary>
<p>Right‑click the file → Properties → Unblock (if available), then run once. Alternatively add the file to your AV allow‑list after verifying the source and checksums where available.</p>
</details>
<details>
<summary>Can I verify integrity of the download?</summary>
<p>Where checksums are provided, compare the file’s hash (e.g., SHA‑256) against the published value. Keep backups and verify after extraction.</p>
</details>
</section>
<section style="margin-top:18px" class="card">
<h2 style="margin:0 0 6px 0">SQLCipher & databases</h2>
<details>
<summary>How do I open an existing SQLCipher database?</summary>
<p>Provide the correct passphrase and ensure parameters match (page size, KDF, HMAC). See <a href="/open-encrypted-db.html">Open an Encrypted DB</a> and <a href="/sqlcipher.html">SQLCipher basics</a>.</p>
</details>
<details>
<summary>‘Wrong key’ error — how do I fix it?</summary>
<p>Usually a parameter mismatch. Confirm the DB’s page size/KDF/HMAC and try again. Follow the <a href="/wrong-key-errors.html">Wrong key errors</a> guide and retest.</p>
</details>
<details>
<summary>How do I migrate from plain SQLite to SQLCipher?</summary>
<p>Back up → create a new encrypted DB with standardized parameters → import → verify → swap. See <a href="/migrate-to-sqlcipher.html">Migrate to SQLCipher</a> and <a href="/encrypt-decrypt-sqlcipher.html">Encrypt / Decrypt</a>.</p>
</details>
</section>
<section style="margin-top:18px" class="card">
<h2 style="margin:0 0 6px 0">Import/Export & performance</h2>
<details>
<summary>Can I import or export CSV files?</summary>
<p>Yes. Use the Import/Export features. For large datasets consider chunked imports and indices. See <a href="/csv-import-export.html">CSV Import/Export</a>.</p>
</details>
<details>
<summary>Performance feels slow — any recommended PRAGMAs?</summary>
<p>Review <a href="/performance-tips.html">Performance Tips</a> for practical PRAGMAs and post‑import maintenance (VACUUM/ANALYZE).</p>
</details>
<details>
<summary>Where can I find useful PRAGMA/SQL commands?</summary>
<p>Check the <a href="/cli-commands.html">CLI / PRAGMA commands</a> cheat sheet with examples and notes.</p>
</details>
</section>
<section style="margin-top:18px" class="card">
<h2 style="margin:0 0 6px 0">Other</h2>
<details>
<summary>Do you support macOS or Linux?</summary>
<p>This resource focuses on a Windows portable build. For macOS/Linux options, see the official project and <a href="/alternatives.html">Alternatives</a>.</p>
</details>
<details>
<summary>What about analytics and cookies?</summary>
<p>We load GA4 with Consent Mode v2. By default analytics storage is denied until you accept in the cookie banner. You can change your choice anytime under <a href="#" onclick="openConsent()">Cookie settings</a>.</p>
</details>
<details>
<summary>How can I contact you?</summary>
<p>Use the <a href="/contact.html">Contact</a> page for support and feedback. Please include steps to reproduce if you report an issue.</p>
</details>
</section>
<div style="margin-top:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap">
<div class="muted">Page last modified: <span id="lastModified" class="muted">--</span></div>
<div class="muted">|</div>
<div class="muted">Canonical: <a href="https://db-browser.github.io/faq.html">https://db-browser.github.io/faq.html</a></div>
</div>
</main>
<footer>
<div class="wrap footer-grid">
<div class="muted">© Community • Unofficial resource • <a href="https://github.com/sqlitebrowser/sqlitebrowser">Source</a></div>
<div style="margin-left:auto" class="muted">
<a href="/changelog.html">Changelog</a> •
<a href="/contact.html">Contact</a> •
<a href="#" onclick="openConsent()">Cookie settings</a> •
<a href="/privacy.html">Privacy</a> •
<a href="/terms.html">Terms</a>
</div>
</div>
</footer>
<!-- Cookie banner (accept / decline / close) -->
<div id="cookieBanner" class="cookie-banner" role="dialog" aria-live="polite" style="display:none">
<div style="display:flex;align-items:center;gap:12px">
<svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--accent)"><use href="#icon-db"></use></svg>
</div>
<div class="cookie-text">
<strong>We use analytics</strong>
<div class="muted">This site uses Google Analytics (GA4). You can accept or decline analytics cookies at any time in cookie settings.</div>
</div>
<div style="display:flex;gap:8px">
<button class="btn" id="acceptCookies">Accept</button>
<button class="btn secondary" id="declineCookies">Decline</button>
<button class="btn secondary" id="closeBanner" aria-label="Close cookie banner"><svg width="14" height="14" viewBox="0 0 24 24"><use href="#icon-close"></use></svg></button>
</div>
</div>
<noscript><div style="padding:12px;background:#fff3cd;color:#856404;text-align:center">JavaScript is required for cookie consent. You can still navigate the site.</div></noscript>
<!-- Inline JS: consent + last modified (same as sample) -->
<script>
/* Configuration */
const CONSENT_KEY = 'dbbrowser_consent_v2'; // values: accepted, declined, closed
function setConsent(val){ try{localStorage.setItem(CONSENT_KEY,val)}catch(e){} }
function getConsent(){ try{return localStorage.getItem(CONSENT_KEY)}catch(e){return null} }
function showBanner(){document.getElementById('cookieBanner').style.display='flex'}
function hideBanner(){document.getElementById('cookieBanner').style.display='none'}
document.getElementById('acceptCookies').addEventListener('click',function(){
setConsent('accepted');
try{ gtag('consent','update', { 'analytics_storage': 'granted' }); }catch(e){}
hideBanner();
});
document.getElementById('declineCookies').addEventListener('click',function(){
setConsent('declined');
try{ gtag('consent','update', { 'analytics_storage': 'denied', 'ad_storage':'denied', 'ad_user_data':'denied', 'ad_personalization':'denied' }); }catch(e){}
hideBanner();
});
document.getElementById('closeBanner').addEventListener('click',function(){
setConsent('closed');
hideBanner();
});
function openConsent(){ showBanner(); }
window.addEventListener('load',function(){
// lastModified
var lm = document.lastModified || new Date().toISOString();
document.querySelector('meta[name="last-modified"]').setAttribute('content', lm);
var el = document.getElementById('lastModified'); if(el) el.textContent = lm;
// Consent boot
const consent = getConsent();
if(!consent){ showBanner(); }
if(consent === 'accepted'){
try{ gtag('consent','update', { 'analytics_storage': 'granted' }); }catch(e){}
}
});
// ESC closes the banner
document.addEventListener('keydown', function(e){ if(e.key === 'Escape'){ hideBanner(); } });
</script>
</body>
</html>