Java 3DES 加解密
程序员文章站
2022-06-15 17:53:10
...
3DES,即三重DES,是DES的加强版。它使用3条56位(共168位)的密钥对数据进行三次加密,通常情况下,提供了较为强大的安全性。
使用3DES和使用DES时类似,需要将算法名称由"DES"改为"DESede"和略微的改变:
这里我们使用了消息摘要和Base64编码技术来产生24个字节的key。
使用3DES和使用DES时类似,需要将算法名称由"DES"改为"DESede"和略微的改变:
public class ThreeDESHelper { static String keyFileName = "3des_key.xml"; private static final String ALGORITHM = "DESede"; // These segments that are similar to the ones of DES are omitted private static SecretKey generateSecretKey(String key) { SecretKey secretKey = null; try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] bytes = key.getBytes(); md.update(bytes, 0, bytes.length); byte[] mdBytes = md.digest(); // Generate 16 bytes whenever byte[] encodedBytes = org.apache.commons.codec.binary.Base64.encodeBase64(mdBytes); // Generate 24 bytes for DESedeKeySpec DESedeKeySpec keySpec = new DESedeKeySpec(encodedBytes); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM); secretKey = keyFactory.generateSecret(keySpec); } catch (Exception e) { e.printStackTrace(); } return secretKey; } }
这里我们使用了消息摘要和Base64编码技术来产生24个字节的key。