HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cipherstash
encrypt-query-language
PLpgSQL2026–2026
cipherstash / encrypt-query-language · Archived

encrypt-query-language

Index and search encrypted data in PostgreSQL with SQL

2Distinct people
4Mentions
0Explicit recommenders
28GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Index and search encrypted data in PostgreSQL with SQL

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:23:53 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by 3-hour interval4 dated mentions

Observed mentions: 2026-07-19 08:30:08 UTC to 2026-07-22 14:08:33 UTC.

0122026-07-19 06:00:00 UTC to 2026-07-19 09:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJul 19, 06:002026-07-19 09:00:00 UTC to 2026-07-19 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-19 12:00:00 UTC to 2026-07-19 15:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-07-19 15:00:00 UTC to 2026-07-19 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-19 18:00:00 UTC to 2026-07-19 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-19 21:00:00 UTC to 2026-07-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-20 00:00:00 UTC to 2026-07-20 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-20 03:00:00 UTC to 2026-07-20 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-20 06:00:00 UTC to 2026-07-20 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-20 09:00:00 UTC to 2026-07-20 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-20 12:00:00 UTC to 2026-07-20 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-20 15:00:00 UTC to 2026-07-20 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-20 18:00:00 UTC to 2026-07-20 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-20 21:00:00 UTC to 2026-07-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJul 20, 21:002026-07-21 00:00:00 UTC to 2026-07-21 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-21 03:00:00 UTC to 2026-07-21 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-21 06:00:00 UTC to 2026-07-21 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-21 09:00:00 UTC to 2026-07-21 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-21 12:00:00 UTC to 2026-07-21 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-21 15:00:00 UTC to 2026-07-21 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-21 18:00:00 UTC to 2026-07-21 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-21 21:00:00 UTC to 2026-07-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-22 00:00:00 UTC to 2026-07-22 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-22 03:00:00 UTC to 2026-07-22 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-22 06:00:00 UTC to 2026-07-22 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-22 09:00:00 UTC to 2026-07-22 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-07-22 12:00:00 UTC to 2026-07-22 15:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJul 22, 12:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 19, 06:002026-07-19 06:00:00 UTC2026-07-19 09:00:00 UTC101
Jul 19, 09:002026-07-19 09:00:00 UTC2026-07-19 12:00:00 UTC000
Jul 19, 12:002026-07-19 12:00:00 UTC2026-07-19 15:00:00 UTC202
Jul 19, 15:002026-07-19 15:00:00 UTC2026-07-19 18:00:00 UTC000
Jul 19, 18:002026-07-19 18:00:00 UTC2026-07-19 21:00:00 UTC000
Jul 19, 21:002026-07-19 21:00:00 UTC2026-07-20 00:00:00 UTC000
Jul 20, 00:002026-07-20 00:00:00 UTC2026-07-20 03:00:00 UTC000
Jul 20, 03:002026-07-20 03:00:00 UTC2026-07-20 06:00:00 UTC000
Jul 20, 06:002026-07-20 06:00:00 UTC2026-07-20 09:00:00 UTC000
Jul 20, 09:002026-07-20 09:00:00 UTC2026-07-20 12:00:00 UTC000
Jul 20, 12:002026-07-20 12:00:00 UTC2026-07-20 15:00:00 UTC000
Jul 20, 15:002026-07-20 15:00:00 UTC2026-07-20 18:00:00 UTC000
Jul 20, 18:002026-07-20 18:00:00 UTC2026-07-20 21:00:00 UTC000
Jul 20, 21:002026-07-20 21:00:00 UTC2026-07-21 00:00:00 UTC000
Jul 21, 00:002026-07-21 00:00:00 UTC2026-07-21 03:00:00 UTC000
Jul 21, 03:002026-07-21 03:00:00 UTC2026-07-21 06:00:00 UTC000
Jul 21, 06:002026-07-21 06:00:00 UTC2026-07-21 09:00:00 UTC000
Jul 21, 09:002026-07-21 09:00:00 UTC2026-07-21 12:00:00 UTC000
Jul 21, 12:002026-07-21 12:00:00 UTC2026-07-21 15:00:00 UTC000
Jul 21, 15:002026-07-21 15:00:00 UTC2026-07-21 18:00:00 UTC000
Jul 21, 18:002026-07-21 18:00:00 UTC2026-07-21 21:00:00 UTC000
Jul 21, 21:002026-07-21 21:00:00 UTC2026-07-22 00:00:00 UTC000
Jul 22, 00:002026-07-22 00:00:00 UTC2026-07-22 03:00:00 UTC000
Jul 22, 03:002026-07-22 03:00:00 UTC2026-07-22 06:00:00 UTC000
Jul 22, 06:002026-07-22 06:00:00 UTC2026-07-22 09:00:00 UTC000
Jul 22, 09:002026-07-22 09:00:00 UTC2026-07-22 12:00:00 UTC000
Jul 22, 12:002026-07-22 12:00:00 UTC2026-07-22 15:00:00 UTC101

What Hacker News says

1 sources
> What does the risk profile look like in a full leak of the encrypted database? We actually have a number of different schemes which trade leakage for performance/storage overhead/compatibility. Each one has its own type in Postgres so you just create a column with whatever type you want. The weakest (most leakage) is OPE - order preserving encryption. We use an encoding scheme that works like scientific notation so an attacker with a DB snapshot would learn relative order but not the size of the gaps between values. Its major benefit is compatibility - it works everywhere. The strongest is Block ORE - Order Revealing Encryption. A DB snapshot reveals nothing more than standard randomized encryption (IND-CPA2 semantic security). The tradeoff is that BlockORE values are much bigger: 32-bit integer goes to 384 bytes. On Postgres its still
Read the rest
very fast and works with standard B-trees. > If you had a column of integers are you able to order them without decrypting? Yes. For either scheme, its just an EQL function: SELECT * FROM foo ORDER by eql_v3.ord_term(x); > Check that values are the same? -- $1: encrypt(query) SELECT * FROM foo WHERE eql_v3.eq_term(x) = eql_v3.eq_term($1); > Identify null values? NULL is just like any value for OPE/ORE - encrypt it and use that to query -- $1: encrypt(NULL) SELECT * FROM foo WHERE eql_v3.eq_term(x) = eql_v3.eq_term($1); NULL values can be encrypted with either scheme. Very safe to do so with the ORE scheme (fully randomized values). If encrypting strings, NULLs would reveal length but you can always pad if not leaking value length is important to your security model. In the OPE scheme, NULL would encrypt deterministically so if you expect a lot of NULLs in your data this could leak the distribution. We are working on a capability now called Leakage Tuned Domains. The goal here is not to eliminate leakage but scope it to a specific data type (e.g. birthdays) such that any leakage cannot be an advantage to an attacker. Think k-anonymisation or differential-privacy on steroids. Some links if you want to learn more: https://github.com/cipherstash/encrypt-query-language https://cipherstash.com/blog/fixing-a-1-in-256-bug-in-cllw-o...
In Searchable field-level encryption on Supabase with CipherStash

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.