求助:JAVA加密的數據PHP解密
問題描述
java 加密后的密文:iP6nVfCE9Eiw47utJDR6wV6Lhl4xyOgYykub0HUJSZQ=以下是 java 的 aes 加密類,希望能用 php 解密出來
package com.mk.api.util;import java.security.Key;import java.security.MessageDigest;import java.util.Arrays;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import javax.xml.bind.DatatypeConverter;/** * AES 加密 */public class AES { private static final String AESTYPE = "AES"; private static final String KEY = "Z8LSq0wWwB5v+6YJzurcP463H3F12iZh74fDj4S74oUH4EONkiKb2FmiWUbtFh97GG/c/lbDE47mvw6j94yXxKHOpoqu6zpLKMKPcOoSppcVWb2q34qENBJkudXUh4MWcreondLmLL2UyydtFKuU9Sa5VgY/CzGaVGJABK2ZR94="; /** * 加密 * @param content * @return */ public static String encrypt(String str) { try { Key key = generateKey(); Cipher c = Cipher.getInstance(AESTYPE); c.init(Cipher.ENCRYPT_MODE, key); byte[] encVal = c.doFinal(str.getBytes()); String encryptedValue = DatatypeConverter.printBase64Binary(encVal); return encryptedValue; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 解密 * @param content * @return */ public static String decrypt(String str) { try { Key key = generateKey(); Cipher c = Cipher.getInstance(AESTYPE); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue = DatatypeConverter.parseBase64Binary(str); byte[] decValue = c.doFinal(decordedValue); String decryptedValue = new String(decValue); return decryptedValue; } catch (Exception e) { e.printStackTrace(); } return null; } private static Key generateKey() throws Exception { byte[] keyValue = KEY.getBytes("UTF-8"); MessageDigest sha = MessageDigest.getInstance("SHA-1"); keyValue = sha.digest(keyValue); keyValue = Arrays.copyOf(keyValue, 16); Key key = new SecretKeySpec(keyValue, AESTYPE); return key; } }
問題解答
回答1:看看這個:https://www.php.cn/php-weizijiaocheng-455991.html
回答2:package com.mk.api.util;import java.security.Key;import java.security.MessageDigest;import java.util.Arrays;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import javax.xml.bind.DatatypeConverter;/** * AES 加密 */public class AES { private static final String AESTYPE = "AES"; private static final String KEY = "Z8LSq0wWwB5v+6YJzurcP463H3F12iZh74fDj4S74oUH4EONkiKb2FmiWUbtFh97GG/c/lbDE47mvw6j94yXxKHOpoqu6zpLKMKPcOoSppcVWb2q34qENBJkudXUh4MWcreondLmLL2UyydtFKuU9Sa5VgY/CzGaVGJABK2ZR94="; /** * 加密 * @param content * @return */ public static String encrypt(String str) { try { Key key = generateKey(); Cipher c = Cipher.getInstance(AESTYPE); c.init(Cipher.ENCRYPT_MODE, key); byte[] encVal = c.doFinal(str.getBytes()); String encryptedValue = DatatypeConverter.printBase64Binary(encVal); return encryptedValue; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 解密 * @param content * @return */ public static String decrypt(String str) { try { Key key = generateKey(); Cipher c = Cipher.getInstance(AESTYPE); c.init(Cipher.DECRYPT_MODE, key); byte[] decordedValue = DatatypeConverter.parseBase64Binary(str); byte[] decValue = c.doFinal(decordedValue); String decryptedValue = new String(decValue); return decryptedValue; } catch (Exception e) { e.printStackTrace(); } return null; } private static Key generateKey() throws Exception { byte[] keyValue = KEY.getBytes("UTF-8"); MessageDigest sha = MessageDigest.getInstance("SHA-1"); keyValue = sha.digest(keyValue); keyValue = Arrays.copyOf(keyValue, 16); Key key = new SecretKeySpec(keyValue, AESTYPE); return key; } }
上面代碼格式亂了
相關文章:
1. docker內創建jenkins訪問另一個容器下的服務器問題2. 如何解決Centos下Docker服務啟動無響應,且輸入docker命令無響應?3. node.js - 如何避免 webstorm 中 Vue 項目通過 npm 面板運行開發服務器時的 DEBUG_FD 已廢棄提示信息4. 老師您的微信號是多少?5. vim里的高亮javascript的javascript.vim 已經放到syntax里了,但是不行。6. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?7. html5 - 百度echart官網下載的地圖json數據亂碼8. css3 - 學習css構建圖形時,遇到一個很有意思的現象,具體代碼如下9. 極光推送 - Android app消息推送 百度 極光 個推 信鴿哪個好一些?10. vue ajax請求回來的數據沒有渲染到頁面
