频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

在Spring中如何使用加密外部属性文件

来源: 作者:IT168 它山 出处:巧巧读书 2008-02-12 进入讨论组

    编写支持加密属性文件的实现类 
    通过以上分析,我们设计一个支持加密属性文件的增强型PropertyPlaceholderConfigurer,其代码如所示:
代码清单 2 DecryptPropertyPlaceholderConfigurer
package com.baobaotao; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.security.Key; import java.util.Properties; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.core.io.Resource; import org.springframework.util.DefaultPropertiesPersister; import org.springframework.util.PropertiesPersister; public class DecryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer ...{ private Resource[] locations; ① 重新定义父类中的这个同名属性 private Resource keyLocation; ② 用于指定密钥文件 public void setKeyLocation(Resource keyLocation) ...{ this.keyLocation = keyLocation; } public void setLocations(Resource[] locations) ...{ this.locations = locations; } public void loadProperties(Properties props) throws IOException ...{ if (this.locations != null) ...{ PropertiesPersister propertiesPersister = new DefaultPropertiesPersister(); for (int i = 0; i < this.locations.length; i++) ...{ Resource location = this.locations[i]; if (logger.isInfoEnabled()) ...{ logger.info("Loading properties file from " + location); } InputStream is = null; try ...{ is = location.getInputStream(); ③ 加载密钥 Key key = DESEncryptUtil.getKey(keyLocation.getInputStream()); ④ 对属性文件进行解密 is = DESEncryptUtil.doDecrypt(key, is); ⑤ 将解密后的属性流装载到props中 if(fileEncoding != null)...{ propertiesPersister.load(props, new InputStreamReader(is,fileEncoding)); }else...{ propertiesPersister.load(props ,is); } } finally ...{ if (is != null) is.close(); } } } } } }
    对locations指定的属性文件流数据进行额外的解密工作,解密后再装载到props中。比起PropertyPlaceholderConfigurer,我们只做了额外的一件事:装载前对属性资源进行解密。 

    在代码清单 2的③和④处,我们使用了一个DES解密的工具类对加密的属性文件流进行解密。观看地址: http://www.qqread.com/java/2008/02/e396819.html 更多文章 更多内容请看加密与解密技术常用软件加密宝典Spring开源框架技术专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章