我正在尝试使用Django Pgcrypto扩展库。
该库似乎安装正常,并在我的网站包中。
但是我尝试运行一个查询我的数据库的命令,并运行PGCrypto decrypt函数,我收到此错误:
function pgp_sym_decrypt(character varying, unknown) does not exist
但是我检查我的Postgresql数据库以查看可用的功能,我看到了:
nspname | proname | params
---------+-----------------------+-------------------
public | pgp_sym_encrypt | text, text
public | pgp_sym_encrypt_bytea | bytea, text
public | pgp_sym_encrypt | text, text, text
public | pgp_sym_encrypt_bytea | bytea, text, text
public | pgp_sym_decrypt | bytea, text
public | pgp_sym_decrypt_bytea | bytea, text
public | pgp_sym_decrypt | bytea, text, text
public | pgp_sym_decrypt_bytea | bytea, text, text
我在Postgres中创建了扩展(对于数据库,我特意要使用扩展名),等等。
那么会导致此错误的原因是什么?
我是否有一些步骤或配置问题?据我所知,PGCrypto已经安装,函数在数据库中,并且在调用时应该可以工作。
答案 0 :(得分:0)
您应该将加密的数据存储在bytea列中,而不是text列中。您也许可以将其从文本投射到bytea:
pgp_sym_decrypt(area_code::bytea,'Password')
答案 1 :(得分:0)
只需为您运行模式:
CREATE EXTENSION IF NOT EXISTS pgcrypto;