如何解决如何使用.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
)
有什么建议吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。