【发布时间】:2012-11-26 20:03:04
【问题描述】:
我是加密新手,我想弄清楚 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
所以现在我有一个加密文件。
我使用 blob/clob 将加密文件和 pub 密钥加载到 Oracle 表中。我正在尝试使用 dbms_crypto.decrypt 函数来解密文件:
select dbms_crypto.decrypt(
encrypted_file,
?,
utl_raw.cast_to_raw('public_key'),
null)
from crypto_test_lobs
此时我不确定要为第二个参数传递什么值,即“要使用的流或块密码类型和修饰符”。我尝试了几种不同的组合,这些组合导致了可能不值得发布的各种异常。
所以我的问题是:
- 这可能吗?
- 如何找出第二个参数?
谢谢
【问题讨论】:
-
这个参数你试过什么?根据docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_crypto.htm,它是一个由 DBMS_CRYPTO.ENCRYPT_AES256、DBMS_CRYPTO.CHAIN_CBC、DBMS_CRYPTO.PAD_PKCS5 等常量组合而成的整数
-
尝试了表 39-5、7 和 8 的几种组合。从这里docs.oracle.com/cd/E11882_01/appdev.112/e25788/…。真的只是在黑暗中刺伤。不知道 Rafael 提到的对称/不对称密码。
标签: oracle plsql gnupg dbms-crypto