我是加密新手,想弄清楚Linux gpg命令和Oracle的dbms_crypto软件包是否可以一起工作。 Oracle版本是11R2。如果可能的话,我将接收由不同系统加密的文件,并希望通过PL/SQL解密它们。我正在通过下面的线程作为POC来查看这是否可能。Oracle PL/SQL dbms_crypto包可以解密使用Linux gpg命令加密的文件吗?
在Linux提示我创建了这个命令的关键:
gpg --gen-key
创建与此命令公钥(使用实际的电子邮件地址):
gpg --armor --export [email protected] > mypublickey
和加密我的文件中像此:
gpg -r [email protected] --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
在这一点上我不能确定什么值,以通为这是“流或块加密类型和修饰符的第二个参数使用”。我尝试了几种不同的组合,这些组合导致了各种可能不值得发布的异常。
所以我的问题是:
- 这可能吗?
- 如何找出第二个参数?
由于
你尝试过这个参数是什么?根据http://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的组合。从这里http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_crypto.htm#CHDBJIEF。真的只是在黑暗中刺伤。不知道拉斐尔提到的对称/非对称密码。 – John