java - 数据库账号的加密解密
生活随笔
收集整理的這篇文章主要介紹了
java - 数据库账号的加密解密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java - 數據庫賬號的加密解密
- 1 加密解密算法的實現 - BASE64Decoder
- 2.數據庫賬號的加密
- 3. 數據庫賬號的解密
- 4. 開放的數據庫用戶名、密碼的加密解密接口
- 4.1 開放接口`DatabaseEnDeCryptInterface`:
- 4.2 接口實現 - 參考
1 加密解密算法的實現 - BASE64Decoder
??在平臺部署時,要求對數據庫中的賬號密碼進行加密,并在程序讀取時進行解密。這里詳細描述了加密解密算法的實現及調用。
??這里我們使用的加密算法是java se環境中自帶的加密算法 :
算法原理:https://blog.csdn.net/mafei852213034/article/details/53331233.
算法實現:
2.數據庫賬號的加密
??對常見的數據庫配置文件,如下:
<session-factory><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:testDB/jbpmdb?useSSL=true&useUnicode=true&characterEncoding=UTF-8</property><!-- 加密前的數據庫連接配置 --><property name="hibernate.connection.username">user1</property><property name="hibernate.connection.password">pass1</property></session-factory>??通過函數調用加密算法,生成對應的用戶名和密碼的加密字符串,替代文件中的真實用戶名和密碼:
public static void main(String[] args) {System.out.println(EncryptAndDecryptStr.encryptStr("testDB", "user1"));System.out.println(EncryptAndDecryptStr.encryptStr("testDB", "pass1"));}結果輸出:
此時,配置文件可更新為:
3. 數據庫賬號的解密
在讀取數據庫配置文件后,將加密的用戶名和密碼解密成原始配置
public static void main(String[] args) {//加密System.out.println(EncryptAndDecryptStr.encryptStr("testDB", "user1"));System.out.println(EncryptAndDecryptStr.encryptStr("testDB", "pass1"));//解密System.out.println(EncryptAndDecryptStr.decryptStr("testDB", "l60UHD130pk="));System.out.println(EncryptAndDecryptStr.decryptStr("testDB", "Sk2XHkX15CQ="));}結果輸出:
4. 開放的數據庫用戶名、密碼的加密解密接口
4.1 開放接口DatabaseEnDeCryptInterface:
/*** 數據庫加解密的接口* @author rmling*/ public interface DatabaseEnDeCryptInterface{/**獲取userName加密后的字符串*/public String getEncryptUserName(String key,String userName);/**對指定字符串進行解密,返回解密后的字符串*/public String getDecryptUserName(String key,String strDecryUserName);/**獲取passward加密后的字符串*/public String getEncryptPassward(String key,String passward);/**對指定字符串進行解密,返回解密后的字符串*/public String getDecryptPassward(String key,String passward); }4.2 接口實現 - 參考
接口實現可根據實際情況自己實現:
private static DatabaseEnDeCryptInterface databaseInter;static{databaseInter = new DatabaseEnDeCryptInterface() {@Overridepublic String getEncryptUserName(String arg0, String arg1) {return EncryptAndDecryptStr.encryptStr(arg0, arg1);}@Overridepublic String getEncryptPassward(String arg0, String arg1) {return EncryptAndDecryptStr.encryptStr(arg0, arg1);}@Overridepublic String getDecryptUserName(String arg0, String arg1) {return EncryptAndDecryptStr.decryptStr(arg0, arg1);}@Overridepublic String getDecryptPassward(String arg0, String arg1) {return EncryptAndDecryptStr.decryptStr(arg0, arg1);}};}1 . 源碼下載鏈接: https://download.csdn.net/download/weixin_44462773/24395402.
2 . 下一章:jbpm - hibernate 的數據庫加密解密的實現.
總結
以上是生活随笔為你收集整理的java - 数据库账号的加密解密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Beyond Compare 4 “授权
- 下一篇: 5G:智能座舱的分水岭,蔚来小鹏们的翻身