現在下記仕様でパラメータの暗号化複合化処理を作成していますが例外が発生して困っています。 方式:DES モード:CBC パディング:PKCS5Padding 秘密鍵:kagi1234 BASE64でエンコードしてString変換 【例外内容】 Exception in thread "main" java.lang.RuntimeException: java.security.InvalidKeyException: Parameters missing at enc.Main01.decrypt(Main01.java:114) 【ソースコード】 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Encoder; public class Main01 { public static void main(String[] args) { try { String val1 = encrypt("10000", "key12345"); System.out.println(decrypt(val1, "key12345")); } catch (Exception e) { e.printStackTrace(); } } public static String encrypt(String text, String secretKey) throws Exception { SecretKeySpec sks = new SecretKeySpec(secretKey.getBytes(), "DES"); Cipher cp = Cipher.getInstance("DES/CBC/PKCS5Padding"); cp.init(Cipher.ENCRYPT_MODE, sks); return new BASE64Encoder().encodeBuffer(cp.doFinal(text.getBytes())); } public static String decrypt(String decValue, String secretKey) throws Exception { SecretKeySpec sks = new SecretKeySpec(secretKey.getBytes(), "DES"); byte[] decArr = new sun.misc.BASE64Decoder().decodeBuffer(decValue); Cipher cp = Cipher.getInstance("DES/CBC/PKCS5Padding"); cp.init(Cipher.DECRYPT_MODE, sks); return new String(cp.doFinal(decArr)); } } 対処方法がも解らず自力解決は困難です。 お手数ですが解決方法を御教授願えないでしょうか? よろしくお願いします。 環境(WidowsXP SP2, JDK1.5.0_07-b03)
↧