日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

加密工具解決方案

系統(tǒng) 2268 0

為Hibernate配置文件加密的三套解決方案(二):

?

轉(zhuǎn)自: http://sklst.javaeye.com/blog/284689

提要:本文將詳細(xì)介紹使用 Jasypt 的加密功能為Hibernate配置文件加密?

首先來了解什么是Jasypt

引用
Jasypt這個Java類包為開發(fā)人員提供一種簡單的方式來為項(xiàng)目增加加密功能,包括:密碼Digest認(rèn)證,文本和對象加密,集成hibernate,Spring Security(Acegi)來增強(qiáng)密碼管理。



你可以從 SourceForge.net下載 最新的Jasypt(目前的最新版本是1.5)?
另外,使用Jasypt還需要幾個Jar包的支持,分別是:?
commons-codec-1.1.jar 和 commons-lang-2.1.jar這在你下載Jasypt壓縮包的lib目錄里已經(jīng)附帶了,如果你是Java SE 5或更早的版本,就需要 ICU3.4.4 或更高版本的支持,這些文件都可以在Jasypt網(wǎng)站的 Dependencies 項(xiàng)下找到。?

另外,我們要了解一下Jasypt的加密方式,Jasypt提供了多種的加密方式,更允許用戶自己編寫加密方法,或使用Java增強(qiáng)加密算法(譬如 TripleDES)也可添加相應(yīng)的包來擴(kuò)展。?
這里只介紹Jasypt默認(rèn)的加密方法,其他方法感興趣的朋友可以自己去研究;?
Jasypt默認(rèn)使用了對稱加密的方法,即加密密鑰和解密密鑰是相同的,流程如下

引用
明文(可以是要加密的密碼) + 密鑰 =Jasypt默認(rèn)算法=> 密文


解密過程與之相反?
為了得到密文,我們先要使用 Jasypt自帶的工具 ,在下載Jasypt壓縮包的bin目錄中有如下文件:

引用
decrypt.bat?
decrypt.sh?
digest.bat?
digest.sh?
encrypt.bat?
encrypt.sh?
jasypt-cli-bundle.jar?
README_IMPORTANT.txt


我們要用到encrypt命令來實(shí)現(xiàn)上面的過程加密明文,命令如下:

Console代碼?
  1. encrypt input=明文(可以是密碼) password=密鑰???


上面的明文和密鑰都不要加引號,output就是需要的密文,將其記錄下來?
得到密文以后,工作就很簡單了?

首先在你的項(xiàng)目中添加需要的包(jasypt-1.5.jar, commons-codec-1.1.jar, commons-lang-2.1.jar, icu4j-4_0.zip)?
之后修改hibernate.cfg.xml文件

Xml代碼?
  1. <? xml ? version = "1.0" ? encoding = "utf-8" ?> ???
  2. <!DOCTYPE hibernate-configuration PUBLIC ??
  3. ??? "-//Hibernate/Hibernate Configuration DTD//EN" ??
  4. ??? "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" > ??
  5. ???? ??
  6. < hibernate-configuration > ??
  7. ?? < session-factory > ??
  8. ???? ??
  9. ???? < property ? name = "connection.provider_class" > ??
  10. ?????? org.jasypt.hibernate.connectionprovider.EncryptedPasswordDriverManagerConnectionProvider ??
  11. ???? </ property > ? <!-- 這個是添加的provider類 --> ??
  12. ???? < property ? name = "connection.encryptor_registered_name" > ??
  13. ?????? configurationHibernateEncryptor ??
  14. ???? </ property > ? <!-- 這里是加密密鑰 --> ??
  15. ???? ??
  16. ???? < property ? name = "connection.url" > jdbc:mysql://localhost/reportsdb </ property > ??
  17. ???? < property ? name = "connection.driver_class" > com.mysql.jdbc.Driver </ property > ??
  18. ???? < property ? name = "connection.username" > reportsUser </ property > ??
  19. ???? < property ? name = "connection.password" > ENC(G6N718UuyPE5bHyWKyuLQSm02auQPUtm) </ property > <!-- 這里的格式是ENC(密文) --> ??
  20. ???? < property ? name = "connection.pool_size" > 12 </ property > ??
  21. ??
  22. ???? < property ? name = "show_sql" > true </ property > ??
  23. ???? < property ? name = "dialect" > org.hibernate.dialect.MySQLDialect </ property > ??
  24. ???? ??
  25. ???? <!-- Mappings etc... --> ??
  26. ???????? ??
  27. ??? </ session-factory > ??
  28. </ hibernate-configuration > ??


上面標(biāo)注的地方是必須的,其他可以按照自己的實(shí)際配置,重新編譯項(xiàng)目,就完成了。

?

加密工具解決方案


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 高邑县| 东台市| 班玛县| 崇明县| 合肥市| 平度市| 灯塔市| 甘德县| 岗巴县| 清水县| 张家港市| 丹阳市| 华容县| 北安市| 泽普县| 泰兴市| 宝丰县| 白沙| 岱山县| 施秉县| 泽普县| 桃园县| 牙克石市| 三台县| 沙坪坝区| 禹州市| 瑞安市| 怀来县| 双鸭山市| 满洲里市| 通州区| 安岳县| 乐业县| 长丰县| 页游| 博罗县| 顺义区| 新安县| 尼勒克县| 湖南省| 花莲县|