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