我是加密新手,我想弄清楚 Linux gpg 命令和 Oracle 的 dbms_crypto 包是否可以一起工作。Oracle 版本是 11R2。我将收到由不同系统加密的文件,如果可能,我想通过 PL/SQL 解密它们。我正在作为 POC 运行下面的线程,看看这是否可能。
在 Linux 提示符下,我使用以下命令创建了一个密钥:
gpg --gen-key
使用此命令创建了一个公钥(使用实际的电子邮件地址):
gpg --armor --export xxx@yyy.com > mypublickey
并像这样加密我的文件:
gpg -r xxx@yyy.com --output input.txt.encrypted --encrypt input.txt
标准输出中有这条消息:
gpg: encrypted with 2048-bit RSA key
所以现在我有一个加密文件。
我使用 blobs/clobs 将我的加密文件和我的 pub 密钥加载到一个 Oracle 表中。我正在尝试使用 dbms_crypto.decrypt 函数来解密文件:
select dbms_crypto.decrypt(
encrypted_file,
?,
utl_raw.cast_to_raw('public_key'),
null)
from crypto_test_lobs
在这一点上,我不确定要为第二个参数传递什么值,即“要使用的流或块密码类型和修饰符”。我尝试了几种不同的组合,导致各种可能不值得发布的异常。
所以我的问题是:
- 这可能吗?
- 我如何弄清楚第二个论点?
谢谢