private static final String Algorithm = "DESede"; //3DES算法 private static byte[] ivs = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }; private static IvParameterSpec iv = new IvParameterSpec(ivs); /************************************************************ Function: // encryptMode(byte[] src,byte[] key) Description: // 3DES_CBC_EN Input: // src-源數據(byte[]) key-加密祕鑰(byte[]) Output: // 加密後的數據 Return: // byte[] *************************************************************/ public static byte[] encryptMode(byte[] src, byte[] key) { try { System.out.println("沒到8bytes:" + Util.byteArrayToHexString(src)); SecretKey deskey = new SecretKeySpec(key, Algorithm); // 生成密鑰21 Cipher c1 = Cipher.getInstance("DESede/CBC/NoPadding"); // 實例化負責加密/解密的Cipher工具類22 c1.init(Cipher.ENCRYPT_MODE, deskey, iv); // 初始化爲加密模式23 return c1.doFinal(src); } catch (java.security.NoSuchAlgorithmException e1) { e1.printStackTrace(); } catch (javax.crypto.NoSuchPaddingException e2) { e2.printStackTrace(); } catch (java.lang.Exception e3) { e3.printStackTrace(); } return null; } /*********************************************************************** * Function: // decryptMode(byte[] src,byte[] key) Description: // * 3DES_CBC_DE Input: // src-源數據(byte[]) key-解密祕鑰(byte[]) Output: // * 解密後的數據 Return: // byte[] **********************************************************************/ public static byte[] decryptMode(byte[] src, byte[] key) { try { SecretKey deskey = new SecretKeySpec(key, Algorithm); Cipher c1 = Cipher.getInstance("DESede/CBC/NoPadding"); c1.init(Cipher.DECRYPT_MODE, deskey, iv); // 初始化爲解密模式44 return c1.doFinal(src); } catch (java.security.NoSuchAlgorithmException e1) { e1.printStackTrace(); } catch (javax.crypto.NoSuchPaddingException e2) { e2.printStackTrace(); } catch (java.lang.Exception e3) { e3.printStackTrace(); } return null; }
3DES_CBC加密算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.