代码之家  ›  专栏  ›  技术社区  ›  b0gusb

如何在PostgreSQL中将字节数组编码为base32

  •  2
  • b0gusb  · 技术社区  · 7 年前

    我有一个Java应用程序,通过将加密随机字节编码为base32,为主键生成ID( RFC4648 ).

    如何从SQL脚本对PostgreSQL执行同样的操作?

    这个 gen_random_bytes 似乎可以生成随机字节,但似乎没有任何东西可以将它们编码到base32。

    1 回复  |  直到 5 年前
        1
  •  2
  •   Community Mohan Dere    5 年前

    几年前,我搜索了这些问题,最终构建了一个纯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