本发明属于数据加密技术领域,尤其是一种离线解密oracle tde加密的数据文件的方法。
背景技术:
透明数据加密(tde)技术是oracle用于加密数据文件的技术,它通过加密来保护存储在操作系统文件中的敏感数据。这项技术可以有效保护用户的敏感数据不被窃取,但是,如果数据库出现宕机,并且常规的数据库恢复方式也无法再启动数据库时,这些密文数据文件用户也将无法读取,这将导致用户加密数据彻底丢失。
技术实现要素:
本发明的目的在于克服现有技术的不足,提出一种离线解密oracle tde加密的数据文件的方法,解决异常情况下密文数据文件用户无法读取并导致用户加密数据彻底丢失的问题。
本发明解决其技术问题是采取以下技术方案实现的:
一种离线解密oracle tde加密的数据文件的方法,包括以下步骤:
步骤1、利用wallet文件夹中密钥文件以及wallet密码解密出主密钥;
步骤2、利用主密钥解出加密文件的解密密钥;
步骤3、利用解密密钥解密数据文件。
所述步骤3的具体方法包括以下处理过程:
⑴从数据文件中读出文件的块大小;
⑵判断块是否加密,如果是加密块,则进入⑶,否则直接复制块;
⑶从数据文件读出加密算法类型;
⑷校验和正确性判断,如果不正确,则将该块剔除;
⑸文件块解密。
所述步骤⑶加密算法类型包括四种。
所述步骤⑸在文件块解密过程中,对于明文字节进行跳过处理。
本发明的优点和积极效果是:
本发明在oracle tde原有功能基础上新增了离线解密数据文件功能,其通过wallet下的密钥文件和打开钱夹的密码,便可将原先的密文文件恢复成明文,完善了oracle tde体系的整个功能,全方位保证用户的数据不丢失,保证了在此场景下用户依旧能够将数据恢复,让用户在使用oracle tde功能过程中没有后顾之忧。
附图说明
图1是本发明的处理流程图。
具体实施方式
以下结合附图对本发明实施例做进一步详述。
一种离线解密oracle tde加密的数据文件的方法,包括以下步骤:
步骤1、利用wallet文件夹中密钥文件以及wallet密码解密出主密钥。
由于Oracle tde主密钥存放于wallet中,并采用PKCS12进行加密,因此,可以直接利用wallet密码就能解出主密钥。
步骤2、利用步骤1产生的主密钥解出加密文件的解密密钥。
由于数据文件的密钥采用了某种加密算法存放在文件中,因此,利用主密钥就能解密出文件密钥。
步骤3、利用解密密钥解密数据文件。具体方法如图1所示,包括以下处理过程:
⑴从数据文件中读出文件的块大小。
由于tde加密支持不同块大小加密,因此,本步骤需从数据文件中读出文件的块大小,判断加密块大小,并按块进行解密。
⑵判断块是否加密,如果是加密块,则进入步骤⑶,否则直接复制块。
由于文件中不是所有的块都是加密的,明文块是不需要处理的,因此,只需要对块的加密进行判断。
⑶从数据文件读出加密算法类型,判断加密算法类型。
在本步骤中,算法类型也可以从文件中读出,oracle数据库支持四种加密算法。
⑷校验和正确性判断,如果不正确,则为坏块,则将其剔除。
由于每个块中都会有校验和来对块的正确性进行判断,校验和不符合的是坏块,坏块即使解密数据也是错误的,所以解密需要剔除坏块。
⑸文件块解密。
判断好各种标志位之后就可以根据算法直接解密了。由于加密块中也存在部分字节是明文的,因此,明文字节进行跳过处理。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。