Chinese, Simplified
SEO Title
category
pgsodium是一个PostgreSQL扩展,它提供了对libsodium高级加密算法的SQL访问。
libsodium是一个现代化、易于使用的软件库,用于加密、解密、签名、密码哈希等。它是一个可移植、可交叉编译、可安装和可打包的NaCl库分支,具有兼容但扩展的API,以进一步提高可用性。
设计选择强调安全性和易用性。但是,尽管强调高安全性,基元在所有方面都比大多数实现更快。
pgsodium向SQL公开以下libsodium API:
- Generating Random Data
- Secret key cryptography
- Public key cryptography
- Hashing
- Password hashing
- Key Derivation
- Key Exchange
- HMAC512
- Advanced Stream API
- XChaCha20-SIV
- Signcryption
它还启用了一些Postgres特有的功能,包括:
请注意,列加密只应用于高度敏感的场景,因为它对语句性能和灵活性有重要影响。
明确地
- 加密和解密都需要时间。插入和选择加密数据比“普通”数据列花费更多的时间。
- 加密列永远不应该被索引。这是因为索引将存储列的加密值,这将毫无用处。
- 加密列可以在WHERE子句中查询,但这也可能会对性能产生一些负面影响,因为必须对值进行解密才能与任何WHERE限定符相匹配。
- 虽然可以对同一表中的多个列进行加密,但每一列都必须经过一个完整的加密周期,因此两列的时间是一列的两倍等等。
一般来说,对普通数据或需要搜索的数据(如姓名、用户或帐户类型、地址、国家代码等)过度使用列加密是个坏主意。列加密用于非常敏感的数据,如果泄露会导致严重问题,如API密钥、支付密钥、高度敏感的个人信息等。
请注意,默认情况下,Supadase项目已经在静止时进行了加密。
获取Suabase项目的根加密密钥#
加密需要密钥。将密钥与加密数据保存在同一数据库中是不安全的。有关在Suabase项目中管理pgnadium根加密密钥的更多信息,请参阅加密密钥位置。此密钥是解密Suabase Vault中存储的值和使用透明列加密加密的数据所必需的。
启用扩展#
仪表板
- Go to the Database page in the Dashboard.
- Click on Extensions in the sidebar.
- 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
- Official
pgsodium
documentation
- 登录 发表评论
- 15 次浏览
发布日期
星期一, 四月 1, 2024 - 09:16
最后修改
星期一, 四月 1, 2024 - 09:16
Tags
Article
最新内容
- 1 day ago
- 1 day ago
- 1 day ago
- 3 days 18 hours ago
- 4 days ago
- 4 days 2 hours ago
- 4 days ago
- 4 days ago
- 1 week 1 day ago
- 1 week 1 day ago