跳转到主要内容
Chinese, Simplified

category

pgsodium是一个PostgreSQL扩展,它提供了对libsodium高级加密算法的SQL访问。

libsodium是一个现代化、易于使用的软件库,用于加密、解密、签名、密码哈希等。它是一个可移植、可交叉编译、可安装和可打包的NaCl库分支,具有兼容但扩展的API,以进一步提高可用性。

设计选择强调安全性和易用性。但是,尽管强调高安全性,基元在所有方面都比大多数实现更快。

pgsodium向SQL公开以下libsodium API:


它还启用了一些Postgres特有的功能,包括:

请注意,列加密只应用于高度敏感的场景,因为它对语句性能和灵活性有重要影响。

明确地

  • 加密和解密都需要时间。插入和选择加密数据比“普通”数据列花费更多的时间。
  • 加密列永远不应该被索引。这是因为索引将存储列的加密值,这将毫无用处。
  • 加密列可以在WHERE子句中查询,但这也可能会对性能产生一些负面影响,因为必须对值进行解密才能与任何WHERE限定符相匹配。
  • 虽然可以对同一表中的多个列进行加密,但每一列都必须经过一个完整的加密周期,因此两列的时间是一列的两倍等等。

一般来说,对普通数据或需要搜索的数据(如姓名、用户或帐户类型、地址、国家代码等)过度使用列加密是个坏主意。列加密用于非常敏感的数据,如果泄露会导致严重问题,如API密钥、支付密钥、高度敏感的个人信息等。

请注意,默认情况下,Supadase项目已经在静止时进行了加密。

获取Suabase项目的根加密密钥#


加密需要密钥。将密钥与加密数据保存在同一数据库中是不安全的。有关在Suabase项目中管理pgnadium根加密密钥的更多信息,请参阅加密密钥位置。此密钥是解密Suabase Vault中存储的值和使用透明列加密加密的数据所必需的。

启用扩展#

仪表板

  1. Go to the Database page in the Dashboard.
  2. Click on Extensions in the sidebar.
  3. Search for pgsodium and enable the extension.

SQL


-- Enable the "pgsodium" extension
create extension pgsodium;
-- Disable the "pgsodium" extension
drop extension if exists pgsodium;

资源#

Supabase Vault
Read more about Supabase Vault in the blog post
Supabase Vault on GitHub

Resources

原文地址
https://supabase.com/docs/guides/database/extensions/pgsodium?database-method=sql
本文地址
Article

微信

知识星球

微信公众号

视频号