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

加密工具解決方案

系統(tǒng) 2133 0

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

?

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

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

首先來了解什么是Jasypt

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



你可以從 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 項下找到。?

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

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


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

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


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

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


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

首先在你的項目中添加需要的包(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 > ??


上面標注的地方是必須的,其他可以按照自己的實際配置,重新編譯項目,就完成了。

?

加密工具解決方案


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 桐城市| 巫山县| 河北省| 蕲春县| 巴彦淖尔市| 林口县| 晋江市| 樟树市| 安徽省| 图片| 孙吴县| 湖州市| 林芝县| 无棣县| 三江| 襄樊市| 家居| 沁阳市| 甘泉县| 泰兴市| 贵州省| 隆化县| 胶南市| 雷波县| 新宾| 建昌县| 嘉祥县| 东兴市| 吴旗县| 赫章县| 三穗县| 罗平县| 忻城县| 亳州市| 天等县| 湖州市| 宜君县| 新化县| 邳州市| 慈溪市| 磴口县|