postgresql - 如何在 PostgreSQL 中将字节数组编码为 base32
问题描述
我有一个 Java 应用程序,它通过将加密随机字节编码为 base32 ( RFC4648 ) 来生成主键的 ID。
如何通过 SQL 脚本对 PostgreSQL 执行相同操作?
似乎可以完成生成随机字节的gen_random_bytes
工作,但似乎没有任何东西可以将它们编码为 base32。
解决方案
几年前我搜索了这个确切的问题,最后构建了一个纯 plpgsql 模式,其中包含处理这个问题的函数,并认为如果有人遇到它,我会把它留在这里。
归功于此视频和 RFC https://www.youtube.com/watch?v=Va8FLD-iuTg https://www.rfc-editor.org/rfc/rfc4648
这是扩展https://github.com/pyramation/base32/blob/master/packages/base32/sql/launchql-base32--0.0.1.sql
一旦你安装它,你可以做
select base32.encode('foo');
-- MZXW6===
select base32.decode('MZXW6===');
-- foo
推荐阅读
- assembly - 如何使用我的阶乘汇编代码设置初始值?
- ios - 在 FSCalendar 中添加自定义假期
- python - 在不同目录中执行同名的python脚本
- verilog - 在verilog 2005中将矩阵转换为数组
- powerbi - 按条件过滤的 Power BI (DAX) 不同计数(Where 子句)
- c# - 在 Windows 服务中调用 Web API?
- shell - influxdb cli如何使用字符串文字
- c++11 - 从双变量定义“const int”
- android - Android Gradle - 将变量发送到依赖项
- python - Killing shell=True 进程导致 ResourceWarning: subprocess is still running