日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java 實(shí)現(xiàn)加密數(shù)據(jù)庫連接的步驟

瀏覽:153日期:2022-08-21 13:29:57

作者:月光中的污點(diǎn)

原文鏈接:https://www.extlight.com/2017/12/16/Java-%E5%AE%9E%E7%8E%B0%E5%8A%A0%E5%AF%86%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5/

一、前言

在很多項(xiàng)目中,數(shù)據(jù)庫相關(guān)的配置文件內(nèi)容都是以明文的形式展示的,這存在一定的安全隱患。

在開發(fā)和維護(hù)項(xiàng)目時,不僅要關(guān)注項(xiàng)目的性能,同時也要注重其安全性。

二、實(shí)現(xiàn)思路

我們都知道項(xiàng)目啟動時,Spring 容器會加載配置文件并讀取文件中的內(nèi)容,那么我們可以下邊步驟操作:

通過 DES 算法加密連接數(shù)據(jù)庫的賬號和密碼并將加密后的密文寫到 db 配置文件中。

在 Spring 讀取 db 配置文件時將密文解密回明文。

三、實(shí)現(xiàn)編碼

3.1 加密工具類

DESUtil 類:

public class DESUtil { private static Key key; private static String KEY_STR = 'myKey'; private static String CHARSETNAME = 'UTF-8'; private static String ALGORITHM = 'DES'; static { try { KeyGenerator generator = KeyGenerator.getInstance(ALGORITHM); SecureRandom secureRandom = SecureRandom.getInstance('SHA1PRNG'); secureRandom.setSeed(KEY_STR.getBytes()); generator.init(secureRandom); key = generator.generateKey(); generator = null; } catch (Exception e) { throw new RuntimeException(e); } } /** * 加密 * @param str * @return */ public static String getEncryptString(String str) { BASE64Encoder base64encoder = new BASE64Encoder(); try { byte[] bytes = str.getBytes(CHARSETNAME); Cipher cipher = Cipher.getInstance(ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] doFinal = cipher.doFinal(bytes); return base64encoder.encode(doFinal); } catch (Exception e) { // TODO: handle exception throw new RuntimeException(e); } } /** * 解密 * @param str * @return */ public static String getDecryptString(String str) { BASE64Decoder base64decoder = new BASE64Decoder(); try { byte[] bytes = base64decoder.decodeBuffer(str); Cipher cipher = Cipher.getInstance(ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, key); byte[] doFinal = cipher.doFinal(bytes); return new String(doFinal, CHARSETNAME); } catch (Exception e) { throw new RuntimeException(e); } }}

通過上邊的工具類對連接數(shù)據(jù)庫的賬號密碼進(jìn)行加密。筆者主機(jī)上連接數(shù)據(jù)庫的賬號和密碼分別是 “root” 和 “tiger”。

經(jīng)過加密后得到 “WnplV/ietfQ=” 和 “xyHEykQVHqA=” 。

db.properties 配置文件完整內(nèi)容如下:

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=UTCjdbc.username=WnplV/ietfQ=jdbc.password=xyHEykQVHqA=

3.2 配置文件解析類

EncryptPropertyPlaceholderConfigurer 類:

public class EncryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer { // 需要解密的字段 private String[] encryptPropNames = { 'jdbc.username', 'jdbc.password' }; @Override protected String convertProperty(String propertyName, String propertyValue) { if (isEncryptProp(propertyName)) { // 解密 String decryptValue = DESUtil.getDecryptString(propertyValue); return decryptValue; } else { return propertyValue; } } private boolean isEncryptProp(String propertyName) { for (String encryptpropertyName : encryptPropNames) { if (encryptpropertyName.equals(propertyName)) return true; } return false; }}

3.3 Spring 配置文件

applicationContext-mybatis.xml 部分內(nèi)容:

<!-- <context:property-placeholder location='classpath:*.properties'/> --> <bean class='com.light.ac.common.configuration.EncryptPropertyPlaceholderConfigurer'> <property name='locations'> <list> <value>classpath:db.properties</value> </list> </property> <property name='fileEncoding' value='UTF-8'/></bean>

未加密明文前,使用的是 <context:property-placeholder /> 加載 db 配置文件。

加密明文后,使用配置文件解析類加載 db 配置文件。

完成上述 3 個步驟后按照往常操作,直接運(yùn)行項(xiàng)目即可。

四、總結(jié)

起初,在不了解實(shí)現(xiàn)思路前覺得這功能很神秘和高大尚。但是,理清思路后功能實(shí)現(xiàn)起來就非常簡單了。

作為程序員不能被神秘的表象驚嘆而“望而卻步”,需要學(xué)會思考和理清思路,這樣才能不斷提升自身能力。

以上就是Java 實(shí)現(xiàn)加密數(shù)據(jù)庫連接的步驟的詳細(xì)內(nèi)容,更多關(guān)于Java 實(shí)現(xiàn)加密數(shù)據(jù)庫連接的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久中文亚洲字幕| 黑人精品一区| 国产精品呻吟| 亚洲欧美日韩视频二区| 午夜亚洲精品| 亚洲综合丁香| 国产视频一区在线观看一区免费| 亚洲欧美一区在线| 视频一区二区中文字幕| 综合激情在线| 国产亚洲字幕| 精品美女久久| 99精品美女| 久热re这里精品视频在线6| 日韩中文字幕在线一区| 日韩一区精品| 久久精品国产999大香线蕉 | 9色国产精品| 中文字幕一区二区av| 日本在线成人| 老色鬼精品视频在线观看播放| 91日韩在线| 午夜日韩福利| 日本在线成人| 久久精品色播| 成人久久久久| 免费观看在线综合色| 国产精品欧美一区二区三区不卡| 成人精品国产亚洲| aa亚洲婷婷| 国产精品亚洲产品| 成人午夜精品| 亚洲精品福利| а√天堂8资源中文在线| 久久精品动漫| 亚洲一区欧美| 国内精品伊人| 欧美日韩国产探花| 久久国产日韩欧美精品| 国产美女高潮在线观看| 久久亚洲国产精品一区二区| 欧美精品成人| 一区三区视频| 国产欧美日韩一级| 亚洲a一区二区三区| 日韩精品一区二区三区免费视频| 精品国产aⅴ| 久久大逼视频| 国产精品99久久精品| 午夜久久99| 麻豆精品在线| 男人的天堂亚洲一区| 精品欧美日韩精品| 午夜一级在线看亚洲| 久久精品国产久精国产爱| 欧美特黄一区| 麻豆91精品视频| 9久re热视频在线精品| 精品久久亚洲| 一级成人国产| 午夜欧美巨大性欧美巨大| 日韩精品a在线观看91| 99久久婷婷这里只有精品| 欧美片第1页综合| 国产综合欧美| 美女av一区| 综合激情婷婷| 999国产精品视频| 国产乱码精品一区二区亚洲| 婷婷综合社区| 国产一区日韩| 日韩av网站免费在线| 欧美 日韩 国产精品免费观看| 国产精品毛片aⅴ一区二区三区| 日韩午夜av| 亚洲电影有码| 精品一级视频| 欧美一级二区| 免费观看在线综合色| 日韩大片在线| 国产精品色在线网站| 免费观看日韩电影| jiujiure精品视频播放| 国产va在线视频| 国产欧美88| 日韩精品视频一区二区三区| 亚洲少妇一区| 91精品推荐| 高清日韩欧美| 久久av影视| 久久激情五月婷婷| 亚洲精品在线二区| 亚洲一区二区三区免费在线观看| 深夜福利视频一区二区| 国产精品分类| 91精品福利观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产激情综合| 91精品国产自产精品男人的天堂| 香蕉久久国产| 夜久久久久久| 狠狠色综合网| 精品1区2区3区4区| 91精品久久久久久久久久不卡| 国产一区二区三区久久| 国产高清精品二区| 青草国产精品| 日本成人中文字幕| 婷婷精品在线| 日韩va亚洲va欧美va久久| 亚洲精品麻豆| 午夜视频一区二区在线观看| 亚洲网址在线观看| 蜜桃久久av一区| 亚洲欧美高清| 午夜在线播放视频欧美| 国产亚洲福利| 免费国产亚洲视频| 一本综合精品| 日本中文字幕视频一区| 日韩福利视频网| 日韩激情中文字幕| 91福利精品在线观看| 国产精品一二| 久久精品伊人| 中文一区一区三区高中清不卡免费| 成人亚洲一区二区| 亚洲黄色免费看| 999精品色在线播放| 激情婷婷综合| 日韩午夜免费| 亚洲精品观看| 欧美天堂一区二区| 国产精品久久久久久久久久白浆| 国产精品密蕾丝视频下载| 精品三区视频| 日韩成人免费| 欧美成人综合| 亚洲日本在线观看视频| 国产日韩欧美高清免费| 国产成人调教视频在线观看| 精品欧美一区二区三区在线观看| 久久亚洲成人| 美女精品网站| 91综合久久爱com| 精品一区二区三区四区五区| 欧美香蕉视频| 亚洲一区日韩| 国产亚洲一区二区三区不卡| 狠狠久久伊人| 国产亚洲激情| 欧美日韩国产一区二区在线观看| 在线天堂资源www在线污| 美女网站久久| 国产成人精选| 亚洲精品影院在线观看| www.com.cn成人| 日韩国产精品久久久久久亚洲| 欧美aa一级| 欧美日韩视频免费看| 久久亚洲精品中文字幕蜜潮电影| 日韩成人午夜精品| 精品一区欧美| 精品亚洲精品| 蜜桃久久精品一区二区| av免费不卡国产观看| 一区二区国产在线观看| 日韩电影免费网址| 久久精品99国产精品日本| 国产高清一区| 精品三级在线观看视频| 在线精品亚洲| 久久久精品午夜少妇| 国产精品一卡| 久久av一区二区三区| 国产成人精品一区二区三区免费| 亚洲丝袜啪啪| 91精品一区二区三区综合在线爱| 国产一精品一av一免费爽爽| 性欧美69xoxoxoxo| 国产一区二区三区不卡av | 成人午夜亚洲| 日本色综合中文字幕| 好吊一区二区三区| 福利一区二区三区视频在线观看| 亚洲一区二区三区久久久| 久久久久亚洲| 欧美国产一级| 国产精品乱战久久久| 亚州av一区| 欧美女激情福利| 日韩黄色大片| 精品美女视频| 国产精品久久久久久久久久妞妞 | 激情久久五月| 国产a亚洲精品| 国产精品va视频| 日韩一二三区在线观看| 国产亚洲精品自拍| 一区二区三区四区在线看|