美妆资讯
base64加密的解密
2023-08-05
[java] view plain copy
package com.sms.utils; import java.util.HashMap; import java.util.Map; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject; public class AESUtils { public static String key = "123456!@#"; public static String iv = "1234567812345678"; /** * 加密 * * @param data * @return */ public static String encrypt(String data) throws Exception { Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); int blockSize = cipher.getBlockSize(); byte[] dataBytes = data.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()); cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); byte[] encrypted = cipher.doFinal(plaintext); return Base64.encodeBase64String(encrypted); } /** * 解密 * * @param data * @return */ public static String desEncrypt(String data) throws Exception { //base64加密串在http中会把"+"号变为" " data = StringUtils.replace(data, " ", "+"); // byte[] contentBytes = Base64.decode(data, 0); byte[] contentBytes = Base64.decodeBase64(data); Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); byte[] original = cipher.doFinal(contentBytes); String originalString = new String(original); return originalString; } public static void main(String[] args) throws Exception { Map<String, String> map = new HashMap<String, String>(); // map.put("username", "admin"); // map.put("password", "123456"); System.out.println(AESUtils.encrypt(JSONUtil.toJson(map))); } }版权声明:CosMeDna所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系删除!
本文链接://www.cosmedna.com/article/125313694.html