0
我们想要一个函数给出参数为bytea
(由函数pgcrypto
扩展的函数gen_random_bytes
生成)的三个字节,该函数返回一个随机的6位整数(在0 & 999999之间)。 6位整数应该保留传递给该函数的参数给出的随机性。如何生成密码强的随机6位整数?
我们想要一个函数给出参数为bytea
(由函数pgcrypto
扩展的函数gen_random_bytes
生成)的三个字节,该函数返回一个随机的6位整数(在0 & 999999之间)。 6位整数应该保留传递给该函数的参数给出的随机性。如何生成密码强的随机6位整数?
在3个字节的情况下,取最后6个字符,前置'x'
,转换为位串,然后为int:
select ('x' || right(gen_random_bytes(3)::text, 6))::bit(24)::int;
更多细节在类似的问题:的What's the easiest way to represent a bytea as a single integer in PostgreSQL?
可能的复制[什么是在PostgreSQL中将bytea表示为单个整数的最简单方法?](https://stackoverflow.com/questions/17208945/whats-the-easiest-way-to-represent-a-bytea-as-a-single-integer -in-PostgreSQL系统)。 – JJJ