如何使用.dll或.SO导入AWS Redshift中的库

我们想使用与其他数据源(如网站,移动应用等)相同的算法对Redshift中的电子邮件字段进行加密。我在Redshift上尝试了python udf代码,但失败并显示错误

文件“ C:\ Python27 \ lib \ Crypto \ Cipher \ AES.py”,第50行,在 从Crypto.Cipher导入_AES ImportError:无法导入名称_AES

我进一步研究发现,加密库具有_AES文件,但是具有.so扩展名,这是其无法在redshift中工作的原因

CREATE OR REPLACE libraRY  Crypto
LANGUAGE plpythonu 
FROM 'https://github.com/ag1693/redshift-test/blob/master/Crypto.zip?raw=true' 
;
CREATE OR REPLACE libraRY  bcrypt
LANGUAGE plpythonu 
FROM 'https://github.com/ag1693/redshift-test/blob/master/bcrypt.zip?raw=true' 
;
create or replace function aes_mot_enc(val varchar(max))
returns varchar
stable as $$  
    from Crypto.Cipher import AES
    import base64
    import hashlib
    import bcrypt                                       
    private_key  = ‘xxxx
    iv = ‘xxxxxxxxxx’
    cipher = AES.new(private_key.encode('utf-8'),AES.MODE_CBC,iv.encode('utf-8'))
    return base64.b64encode(cipher.encrypt(str(val).encode()))  
$$ LANGUAGE plpythonu ;                             
select aes_mot_enc(val) as val
From 
(
Select ‘Ashish’ as val 
)

有什么建议吗?

iCMS 回答:如何使用.dll或.SO导入AWS Redshift中的库

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1667638.html

大家都在问