package util.core;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class Utils {
public static String key = "47944980";
public static String decrypt(String value, String basePath) {
String path = "/WEB-INF/jsp/js/des.js";
try {
String content = readFile(new File(basePath + path));
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("javascript");
se.eval(content + " DES.init( \"" + key + "\" , \"" + value
+ "\" ) ;");
String pwd = (String) se
.eval("decodeURI(DES.Encrypt(\"Decrypt\"))");
return pwd;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String encrypt(String value, String basePath) {
String path = "/WEB-INF/jsp/js/des.js";
try {
String content = readFile(new File(basePath + path));
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("javascript");
se.eval(content + " DES.init( \"" + key + "\" , encodeURI( \""
+ value + "\" ) ) ; ");
String pwd = (String) se.eval("DES.Encrypt()");
return pwd;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static void main(String[] args) {
String basePath = "E:\\soft\\apache-tomcat-6.0.18\\webapps\\rh\\";
String e = encrypt("中文", basePath) ;
System.out.println("pwd=" + e );
System.out.println("pwd=" + decrypt( e , basePath));
}
/**
* 读取文件内容
*/
public static String readFile(File file) {
String content = "";
InputStream is = null;
try {
is = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
String str = line.trim() ;
content += str + "\n" ;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (Exception e) {
}
}
return content;
}
}