mvn test -Dmaven.test.failure.ignore=true -Dapp.properties.path=conf/area/sz -P profile-A
public class EncryptedPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
private List<String> encryptPropertyNames;
@Override
protected String convertProperty(String propertyName, String propertyValue) {
String propertyValueDecrypt = propertyValue;
if (containsProperty(propertyName)) {
propertyValueDecrypt = PropertyDecryptor.decrypt(propertyValue);
}
return convertPropertyValue(propertyValueDecrypt);
}
private boolean containsProperty(String propertyName) {
return encryptPropertyNames != null && encryptPropertyNames.contains(propertyName);
}
public void setEncryptPropertyNames(List<String> encryptPropertyNames) {
this.encryptPropertyNames = encryptPropertyNames;
}
}
public class PropertyDecryptor {
private static void checkForHex(char c) {
if (c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9' || c == 'A' || c == 'B' ||
c == 'C' || c == 'D' || c == 'E' || c == 'F') {
return;
}
throw new IllegalArgumentException("Expected hex character for " + Character.toString(c));
}
/**
* @param encryptedText in the form AA[11BB3344 ..] -- All hex numbers Where AA is the key that is XOR'ed againt the
* other numbers to decrypt.
* @return Encrypted string
*/
public static String decrypt(String encryptedText) {
char[] encodedText = encryptedText.toUpperCase().toCharArray();
// First Get the Key.
int key = theConv(encodedText);
char[] textString = new char[encodedText.length / 2 - 1]; // ' - 1'
// since the
// first hex
// is the key
for (int pos = 2; pos < encodedText.length; pos += 2) {
char[] hexNum = {encryptedText.charAt(pos), encryptedText.charAt(pos + 1)};
int x = (theConv(hexNum) ^ key);
char theChar = (char) x;
textString[pos / 2 - 1] = theChar;
}
return new String(textString);
}
private static int theConv(char[] c) {
// Check its Hex
checkForHex(c[0]);
checkForHex(c[1]);
Character hexStr0 = Character.toLowerCase(c[0]);
Character hexStr1 = Character.toLowerCase(c[1]);
int MSB;
int LSB;
// 48 is ASCII value of 0
// 97 is ASCII value of a
if (Character.isDigit(hexStr0)) {
MSB = (hexStr0 - 48);
}
else {
int asciiVal = hexStr0;
MSB = (asciiVal - 97 + 10);
}
if (Character.isDigit(hexStr1)) {
LSB = (hexStr1 - 48);
}
else {
int asciiVal = hexStr1;
LSB = (asciiVal - 97 + 10);
}
return (MSB * 16 + LSB);
}
public static void main(String args[]) {
System.out.println(decrypt(args[0]));
}
}
分享到:
相关推荐
【hibernate+maven demo项目工程】是一个基于Hibernate ORM框架和Maven构建工具的示例项目,旨在帮助开发者理解和实践如何在实际开发中整合这两项技术。该项目的主要目的是展示如何利用Maven管理依赖,以及如何配置...
【标题】:“dubbo+zookeeper Maven Demo” 在Java开发领域,Dubbo和Zookeeper是两个极为重要的组件。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了服务治理的全套解决方案,包括服务注册与发现、负载...
在这个"Structs2 + Maven Demo项目"中,开发者旨在展示如何将Structs2框架与Maven相结合,以创建一个简单的Web应用。XML映射是Structs2中重要的部分,它负责定义控制器和视图之间的关系,使得请求能够被正确地路由到...
学习搭建 springmvc环境,第一个搭建成功的小DEMO。由于是第一次搭建,就免费送资源把。
【标题】:“jacoco单元测试覆盖率+maven DEMO”是一个示例项目,旨在演示如何使用JaCoCo工具和Maven构建工具来计算Java项目的单元测试覆盖率。JaCoCo是一款流行的开源代码覆盖率工具,它能够帮助开发者了解代码在...
【标题】"mavendemo+mybats+spring+Springmvc" 涉及的知识点主要集中在Java Web开发领域,特别是使用Maven、MyBatis、Spring和Spring MVC这四大核心技术构建一个完整的Web应用程序。这里我们将深入探讨这些技术以及...
标题中的“Spring MVC Data JPA Maven Demo 全注解”是指一个使用Spring MVC、Spring Data JPA和Maven构建的示例项目,该项目全面利用注解进行配置,旨在简化开发流程并提高效率。让我们详细了解一下这三个核心组件...
总结来说,"JFinal+freemarker+maven demo实例"是一个典型的Java Web项目架构,展示了如何利用这三个工具进行高效开发。JFinal提供了快速开发的基础,FreeMarker实现了动态视图,而Maven则保证了项目的构建和管理。...
**Spring Boot Maven Demo详解** Spring Boot 是一个由 Pivotal 团队开发的框架,它旨在简化Spring应用程序的初始设置和开发过程。Spring Boot通过提供默认配置,使得开发者可以快速地构建可运行的独立应用程序。在...
在这个"Mybatis Maven Demo"中,我们将探讨如何结合这两者进行项目开发。 首先,让我们了解MyBatis的核心特性。MyBatis消除了几乎所有的JDBC代码和手动设置参数,以及获取结果集。它将SQL语句与Java代码分离,使得...
**SpringMVC与Maven简介** SpringMVC是Spring框架的一部分,它是一个基于Java的Model-View-Controller(MVC)架构,用于构建Web应用程序。SpringMVC通过解耦业务逻辑、数据处理和用户界面,使得开发过程更加模块化...
本"maven分模块小demo"旨在展示如何利用Maven的多模块特性进行项目结构的组织和管理。下面将详细阐述相关知识点: 1. Maven多模块项目结构: Maven的多模块项目允许我们将大型项目分解为更小、更易于管理的部分,...
【标题】"Mybatis3+SpringMVC+Spring+ 注解+Maven DEMO" 涉及到的是一个常见的Java Web开发框架集成示例,这个DEMO旨在展示如何将Mybatis3、SpringMVC、Spring框架以及Maven构建工具整合在一起,以实现高效、模块化...
读书笔记:SpringBoot实战第二章Maven Demo
**Spring + ActiveMQ + Maven 整合示例详解** 在当今的软件开发中,Spring框架因其强大的功能和灵活性,已经成为Java企业级应用的首选。同时,消息中间件ActiveMQ作为Apache出品的一款开源JMS(Java Message ...
使用spring jmstemplate写的activemq小demo,浅显易懂。工程下载导入可用(maven 工程) activemq 可直接apache官网下载 传送门http://activemq.apache.org/download.html
标题中的“普通的IDEA maven java项目demo(hello word)-1.8”指的是一个基于IntelliJ IDEA的Java项目,使用Maven构建系统,并且是初学者级别的Hello World示例。这个项目可能是为了教授Java编程语言的基础知识,...
这个“基本的maven框架demo ssm”项目就是一个典型的SSM应用实例,旨在帮助开发者快速理解并上手这三个框架的集成与使用。 1. **Spring框架**:Spring是Java领域的一个全面的企业级应用开发框架,提供了依赖注入...
这个"sshmaven的demo"很可能是为了演示如何使用Maven来管理和构建一个包含SSH(Spring、Struts和Hibernate)的Java应用程序。下面我们将详细探讨SSH框架以及Maven在其中的作用。 **Spring框架** Spring是Java企业级...
**Spring MVC + Mybatis + Maven 整合应用详解** 在现代Java Web开发中,Spring MVC、Mybatis和Maven是三个非常重要的工具。Spring MVC作为Spring框架的一部分,提供了强大的MVC设计模式支持,用于构建优雅的Web...