相关疑难解决方法(0)

需要bigint的plpgsql中的pseudo_encrypt()函数

我的工作产生像在回答#2随机IDS系统上这里.

我的问题是,提到的pseudo_encrypt()函数适用于int而不是bigint.我试图重写它,但它返回总是相同的结果:

CREATE OR REPLACE FUNCTION pseudo_encrypt(VALUE bigint) returns bigint AS $$
DECLARE
l1 bigint;
l2 int;
r1 bigint;
r2 int;
i int:=0;
BEGIN
    l1:= (VALUE >> 32) & 4294967296::bigint;
    r1:= VALUE & 4294967296;
    WHILE i < 3 LOOP
        l2 := r1;
        r2 := l1 # ((((1366.0 * r1 + 150889) % 714025) / 714025.0) * 32767)::int;
        l1 := l2;
        r1 := r2;
        i := i + 1;
    END LOOP;
RETURN ((l1::bigint << 32) + r1); …
Run Code Online (Sandbox Code Playgroud)

sql postgresql plpgsql

13
推荐指数
2
解决办法
3150
查看次数

标签 统计

plpgsql ×1

postgresql ×1

sql ×1