我在寫解密演算法時用到陳述句Cipher.getInstance("DES/CBC/PKCS5Padding"),但編譯器提示錯誤如下
package Decode;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
public class mail_Phone_PwdDe {
public static void main(String args[]) throws
NoSuchAlgorithmException, NoSuchPaddingException {
請問應該怎么解決?
uj5u.com熱心網友回復:
/**
* 加密資料
* @param content 需要加密的內容
* @param password 加密密碼
* @return
*/
public static byte[] encryptForAES(byte[] content, String password) {
if(content == null || content.length == 0 || password == null) return null;
try {//不需要這么復雜的key
//KeyGenerator kgen = KeyGenerator.getInstance("AES");
//kgen.init(128, new SecureRandom(password.getBytes("utf-8")));
//SecretKey secretKey = kgen.generateKey();
//byte[] enCodeFormat = secretKey.getEncoded();
byte[] enCodeFormat = getBytesForUTF8(password);
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");// 創建密碼器,ECB模式,PKCS5Padding填充方式 AES/ECB/PKCS5Padding
cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化為加密模式
byte[] result = cipher.doFinal(content);
return result; // 加密
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
uj5u.com熱心網友回復:
因為你沒有貼原始碼出來,先試試樓上的方法,應該可以解決你的問題,他這個加密方法是正確的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/46169.html
標籤:Eclipse
上一篇:java創建用戶界面,讀取txt檔案,進行用戶和密碼驗證
下一篇:動作監聽中點擊按鈕沒有反應
