2025年java中3DES秘钥

java中3DES秘钥java 中 3des 秘钥的生成以及加解密代码 public class DESTest public static void main String args 数据明文 String data zhegsjsjfsfj try 1 java 生成 3des 秘钥加解密 Key desKey

大家好,我是讯享网,很高兴认识大家。
java中3des秘钥的生成以及加解密代码:

讯享网
讯享网public class DESTest { public static void main(String[] args) { //数据明文  String data = "zhegsjsjfsfjs"; try { //1.java生成3des秘钥加解密  Key desKey = get3DESKey(); String encrypt = new String(Base64.encode(desKey.getEncoded())); System.out.println("java生成的3des秘钥为:" + encrypt); byte[] bytes = encryptOrDecryptBy3DES(data.getBytes("utf-8"), Cipher.ENCRYPT_MODE, desKey); System.out.println("java生成的3des秘钥加密后的数据:" + new String(Base64.encode(bytes))); byte[] bytes1 = encryptOrDecryptBy3DES(bytes, Cipher.DECRYPT_MODE, desKey); System.out.println("java生成3des密钥解密后的数据:" + new String(bytes1)); //2.已知3des秘钥串加解密  Key key = strTo3DESKey("LAiSOwt1T2RiXdPT9NYyOJRkYjiYVPiS"); byte[] b = encryptOrDecryptBy3DES(data.getBytes("utf-8"), Cipher.ENCRYPT_MODE, key); System.out.println("已知3des秘钥串加密后的数据" + new String(Base64.encode(b))); byte[] b1 = encryptOrDecryptBy3DES(b, Cipher.DECRYPT_MODE, key); System.out.println("已知3des秘钥串解密后的数据:" + new String(b1)); } catch (Exception e) { e.printStackTrace(); } } //获取des密钥  public static Key get3DESKey() throws NoSuchAlgorithmException { KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede"); keyGenerator.init(168); Key key = keyGenerator.generateKey(); return key; } //已知密钥串,获取3DES密钥  public static Key strTo3DESKey(String key) throws NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException { Provider provider = new BouncyCastleProvider(); KeySpec keySpec = new DESedeKeySpec(Base64.decrypt(key.getBytes("utf-8")); SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DESede", provider); SecretKey secretKey = secretKeyFactory.generateSecret(keySpec); return secretKey; } //加解密通过3des算法  public static byte[] encryptOrDecryptBy3DES(byte[] bytes, int mode, Key key) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException { //填充模式:DESede/ECB/PKCS5Padding  Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding"); cipher.init(mode, key); return cipher.doFinal(bytes); }}导入的jar包:
讯享网
<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk16</artifactId> <version>1.46</version> </dependency>

小讯
上一篇 2025-01-16 07:50
下一篇 2025-03-09 18:45

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/29849.html