写在前面:此部分内容为原理部分,说的是一种模式,没有用实际代码进行解析,需要参考代码实现的可以不必往下看
问题的现象:用加密后的字符串解密的时候报空指针异常;解密方法需要try--catch才能看到异常效果;
先说重现方式:1.工程需要依赖数据库驱动的jar包,具体的类名一般可以看jdbc.properties文件第一行的类;
2.在测试工程中,调用Oracle驱动类中connect内的加密方法,可以把这一块方法搬出来写在自己的测试方法中,然后日志输出解密后的明文密码,需要对解密过程抓异常;
3.启动服务后,测试日志打印内容,会发现在执行解密方法的时候出现的空指针异常;
所以,Oracle有不允许这样直接暴力调用解密方法解析加密后的字符串;
密文连接原理:1.首先jdbc.properties文件中的密码配置的是密文类型;
2.连接数据库的时候,驱动jar包内会对该密文字符串使用服务器上指定的秘钥进行解密,然后,进行明文连接数据库;
需要说明的是:同一个明文密码,每次加密后可密文密码都不一样,但是解密方法解密出来的结果一样,配置jdbc的时候使用任意一个都行;不必纠结于此。