对称加密算法(2):3DES
来源:互联网 发布:水琴为何声音恐怖知乎 编辑:程序博客网 时间:2024/05/17 09:25
3DES 的实现方式:jdk 的实现 , BouncyCastle 的实现方式
/** * jdk 3DES 生成秘钥 * @return * @throws Exception */public static byte [] JDK_3DES_GetSecretKey() throws Exception{KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");keyGenerator.init(168); // 秘钥的长度 ,可使用 new SecureRandom() 生成默认长度的秘钥SecretKey secretKey = keyGenerator.generateKey();return secretKey.getEncoded();}/** * 使用 3des 对数据进行加密 * @param src * @param encryptKey * @return * @throws Exception */public static byte [] JDK_3DES_Encrypt(String src,byte [] encryptKey) throws Exception{//Key 的转换DESedeKeySpec keySpec = new DESedeKeySpec(encryptKey);SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");Key secretKey = factory.generateSecret(keySpec);//加密Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, secretKey);byte [] result = cipher.doFinal(src.getBytes());return result;}/** * 使用 3des 对数据进行解密 * @param encryptBytes * @param encryptKey * @return * @throws Exception */public static String JDK_3DES_Decrypt(byte [] encryptBytes ,byte [] encryptKey) throws Exception{//Key 的转换DESedeKeySpec keySpec = new DESedeKeySpec(encryptKey);SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");Key secretKey = factory.generateSecret(keySpec);//解密Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE, secretKey);String result = new String(cipher.doFinal(encryptBytes));return result;}/** * bc 3DES 生成秘钥 * @return * @throws Exception */public static byte [] BC_3DES_GetSecretKey() throws Exception{Security.addProvider(new BouncyCastleProvider());KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede","BC");keyGenerator.init(new SecureRandom()); // 秘钥的长度 new SecureRandom() 默认长度SecretKey secretKey = keyGenerator.generateKey();return secretKey.getEncoded();}/** * 使用 3des 对数据进行加密 * @param src * @param encryptKey * @return * @throws Exception */public static byte [] BC_3DES_Encrypt(String src,byte [] encryptKey) throws Exception{//Key 的转换DESedeKeySpec keySpec = new DESedeKeySpec(encryptKey);SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");Key secretKey = factory.generateSecret(keySpec);//加密Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, secretKey);byte [] result = cipher.doFinal(src.getBytes());return result;}/** * 使用 3des 对数据进行解密 * @param encryptBytes * @param encryptKey * @return * @throws Exception */public static String BC_3DES_Decrypt(byte [] encryptBytes ,byte [] encryptKey) throws Exception{//Key 的转换DESedeKeySpec keySpec = new DESedeKeySpec(encryptKey);SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");Key secretKey = factory.generateSecret(keySpec);//解密Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.DECRYPT_MODE, secretKey);String result = new String(cipher.doFinal(encryptBytes));return result;}
阅读全文
0 0
- 对称加密算法(2):3DES
- 3DES对称加密算法
- 对称加密算法3DES
- JAVA-对称加密算法3DES
- 对称加密算法DES、3DES和AES
- 对称加密算法DES、3DES和AES
- 对称加密算法DES、3DES和AES
- 对称加密算法DES、3DES和AES
- 对称加密算法-DES,3DES,AES
- 对称加密算法----DES加密算法
- 3DES对称加密算法UTIL类
- 对称加密算法DES实现
- DES对称加密算法
- 对称加密算法DES
- DES对称加密算法
- DES对称加密算法 CryptoUitls
- DES ~ 对称加密算法
- 对称加密算法DES
- UISegmentedControl用法详解
- bug代码// 求最大公因数、最小公倍数
- 使用PrepareStatement
- [总结]年中总结
- Servlet生命周期 HttpServlet Mapping配置
- 对称加密算法(2):3DES
- J2EE进阶之过滤器Filter 二十一
- 美团2018测开编程题——改卷子&魔法表
- Android 广播机制(一)
- 遗传算法实战1
- 顺时针螺旋填入数字
- 1Spring-IOC-1--(IOC意义)
- [Poj1717]&[洛谷1282]多米诺骨牌 背包Dp
- 对象指针