Antiloveg 8 years ago
parent
commit
9948827823

+ 49 - 32
src/main/java/com/goafanti/admin/controller/AdminTechProjectController.java

@@ -84,7 +84,10 @@ public class AdminTechProjectController extends CertifyApiController {
 			List<TechProjectManageListBo> l = (List<TechProjectManageListBo>) t.getList();
 			for (TechProjectManageListBo w : l) {
 				if (!StringUtils.isBlank(w.getPassword())) {
-					w.setPassword(AesUtils.decrypt(w.getPassword(), aesSecretKey));
+					try {
+						w.setPassword(AesUtils.decrypt(w.getPassword(), aesSecretKey));
+					} catch (Exception e) {
+					}
 				}
 			}
 			t.setList(l);
@@ -174,7 +177,8 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @throws ParseException
 	 */
 	@RequestMapping(value = "/updateTechProject", method = RequestMethod.POST)
-	public Result updateTechProject(@Valid InputTechProject techProject, @Valid InputTechProjectLog log, BindingResult bindingResult, String recordTimeFormattedDate) {
+	public Result updateTechProject(@Valid InputTechProject techProject, @Valid InputTechProjectLog log,
+			BindingResult bindingResult, String recordTimeFormattedDate) {
 		Result res = new Result();
 		if (bindingResult.hasErrors()) {
 			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
@@ -184,18 +188,18 @@ public class AdminTechProjectController extends CertifyApiController {
 		if (!checkAdminLogin(res)) {
 			return res;
 		}
-		
+
 		if (StringUtils.isBlank(techProject.getId())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报ID"));
 			return res;
 		}
-		
+
 		TechProject t = techProjectService.selectByPrimaryKey(techProject.getId());
-		if (null == t){
+		if (null == t) {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "找不到申报项目", "科技项目申报"));
 			return res;
 		}
-		
+
 		Date recordTime = null;
 		if (!StringUtils.isBlank(recordTimeFormattedDate)) {
 			try {
@@ -203,7 +207,7 @@ public class AdminTechProjectController extends CertifyApiController {
 			} catch (ParseException e) {
 			}
 		}
-		
+
 		TechProject tp = new TechProject();
 		TechProjectLog tpl = new TechProjectLog();
 		tp.setId(techProject.getId());
@@ -277,8 +281,11 @@ public class AdminTechProjectController extends CertifyApiController {
 			List<TechWebsiteListBo> l = (List<TechWebsiteListBo>) t.getList();
 			for (TechWebsiteListBo w : l) {
 				if (!StringUtils.isBlank(w.getPassword())) {
+					try {
 						w.setPassword(AesUtils.decrypt(w.getPassword(), aesSecretKey));
-					//w.setPassword(Base64Utils.decodeData(w.getPassword()));
+					} catch (Exception e) {
+					}
+					// w.setPassword(Base64Utils.decodeData(w.getPassword()));
 				}
 			}
 			t.setList(l);
@@ -294,7 +301,7 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/techWebsiteDetail", method = RequestMethod.POST)
-	public Result techWebsiteDetail(String id)  {
+	public Result techWebsiteDetail(String id) {
 		Result res = new Result();
 		if (!checkAdminLogin(res)) {
 			return res;
@@ -304,13 +311,17 @@ public class AdminTechProjectController extends CertifyApiController {
 		} else {
 			TechWebsiteDetailBo w = techWebsiteService.selectTechWebsiteDetail(id);
 			if (null != w && !StringUtils.isBlank(w.getPassword())) {
+				try {
 					w.setPassword(AesUtils.decrypt(w.getPassword(), aesSecretKey));
+				} catch (Exception e) {
+				}
 			}
-			
-			/*if (null != w && !StringUtils.isBlank(w.getPassword())) {
-				w.setPassword(Base64Utils.decodeData(w.getPassword()));
-			}*/
-				res.setData(w);
+
+			/*
+			 * if (null != w && !StringUtils.isBlank(w.getPassword())) {
+			 * w.setPassword(Base64Utils.decodeData(w.getPassword())); }
+			 */
+			res.setData(w);
 		}
 		return res;
 	}
@@ -322,7 +333,7 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/disposeTechWebsite", method = RequestMethod.POST)
-	public Result disposeTechWebsite(@Valid InputTechWebsite w, BindingResult bindingResult)  {
+	public Result disposeTechWebsite(@Valid InputTechWebsite w, BindingResult bindingResult) {
 		Result res = new Result();
 		if (bindingResult.hasErrors()) {
 			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
@@ -332,34 +343,39 @@ public class AdminTechProjectController extends CertifyApiController {
 		if (!checkAdminLogin(res)) {
 			return res;
 		}
-		
+
 		if (StringUtils.isBlank(w.getUid())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
 			return res;
 		}
-		
+
 		User curUser = userService.selectByPrimaryKey(w.getUid());
 		if (!checkCertify(res, curUser)) {
 			return res;
 		}
-		
-		/*if (null != w && null != (w.getPassword())) {
-			w.setPassword(Base64Utils.encodeData(w.getPassword().trim()));
-		}*/
-		
+
+		/*
+		 * if (null != w && null != (w.getPassword())) {
+		 * w.setPassword(Base64Utils.encodeData(w.getPassword().trim())); }
+		 */
+
 		if (null != w && null != (w.getPassword())) {
+			try {
 				w.setPassword(AesUtils.encrypt(w.getPassword().trim(), aesSecretKey));
+			} catch (Exception e) {
+			}
 		}
-		
+
 		TechWebsite tw = new TechWebsite();
 		BeanUtils.copyProperties(w, tw);
-		
+
 		res.setData(techWebsiteService.saveWebsite(tw));
 		return res;
 	}
-	
+
 	/**
 	 * 科技项目申报材料上传
+	 * 
 	 * @param req
 	 * @param uid
 	 * @return
@@ -374,14 +390,15 @@ public class AdminTechProjectController extends CertifyApiController {
 		if (!checkCertify(res, curUser)) {
 			return res;
 		}
-		
+
 		String sign = "tech_project";
 		res.setData(handleFiles(res, "/techProject/", true, req, sign, uid));
 		return res;
 	}
-	
+
 	/**
 	 * 下载科技项目材料
+	 * 
 	 * @param response
 	 * @param fileName
 	 * @param path
@@ -389,23 +406,23 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/download", method = RequestMethod.GET)
-	public Result download(HttpServletResponse response, String id){
+	public Result download(HttpServletResponse response, String id) {
 		Result res = new Result();
 		if (!checkUserLogin(res)) {
 			return res;
 		}
-		
+
 		if (StringUtils.isEmpty(id)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目ID"));
 			return res;
 		}
-		
+
 		TechProject t = techProjectService.selectByPrimaryKey(id);
-		if (null == t){
+		if (null == t) {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目ID"));
 			return res;
 		}
-		
+
 		downloadFile(response, t.getApprovalDownloadFileName(), t.getApprovalUrl());
 		return res;
 	}

+ 14 - 35
src/main/java/com/goafanti/common/utils/AesUtils.java

@@ -3,36 +3,24 @@ package com.goafanti.common.utils;
 import javax.crypto.Cipher;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.SecretKeySpec;
-
 import org.apache.commons.codec.binary.Base64;
 
 public class AesUtils {
-
 	public static String encrypt(String content, String key) throws Exception {
 		try {
-			String data = content;
-			String iv = key;
-
 			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
 			int blockSize = cipher.getBlockSize();
-
-			byte[] dataBytes = data.getBytes();
+			byte[] dataBytes = content.getBytes();
 			int plaintextLength = dataBytes.length;
 			if (plaintextLength % blockSize != 0) {
 				plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
 			}
-
 			byte[] plaintext = new byte[plaintextLength];
 			System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
-
 			SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
-			IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
-
+			IvParameterSpec ivspec = new IvParameterSpec(key.getBytes());
 			cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
-			byte[] encrypted = cipher.doFinal(plaintext);
-
-			return Base64.encodeBase64String(encrypted);
-
+			return Base64.encodeBase64String(cipher.doFinal(plaintext));
 		} catch (Exception e) {
 			e.printStackTrace();
 			return null;
@@ -41,33 +29,24 @@ public class AesUtils {
 
 	public static String decrypt(String content, String key) throws Exception {
 		try {
-			String data = content;
-			String iv = key;
-
-			byte[] decoded = Base64.decodeBase64(data);
-
+			byte[] decoded = Base64.decodeBase64(content);
 			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
 			SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
-			IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
-
+			IvParameterSpec ivspec = new IvParameterSpec(key.getBytes());
 			cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
-
 			byte[] original = cipher.doFinal(decoded);
-			String originalString = new String(original);
-			return originalString;
+			int i = original.length - 1;
+			for (; i >= 0; i--) {
+				if (original[i] != 0) {
+					break;
+				}
+			}
+			byte[] subarray = new byte[i + 1];
+			System.arraycopy(original, 0, subarray, 0, i + 1);
+			return new String(subarray);
 		} catch (Exception e) {
 			e.printStackTrace();
 			return null;
 		}
 	}
-	
-	public static void main(String[] args) throws Exception {
-		String pwd = "Ai/0sYzmwiWiE6vq";
-		String msg = "hahahahahahaha";
-		String encrypted = AesUtils.encrypt(msg, pwd);
-		System.out.println(encrypted);
-		System.out.println(encrypted.length());
-		System.out.println(AesUtils.decrypt(encrypted, pwd));
-	}
-
 }