php 3des/cbc/PKCS5Padding 加解密

import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;

class Untitled {



public static void main(String[] args) throws Exception {
    
    //key 生成1 方法1

// KeyGenerator keyGen = KeyGenerator.getInstance("DESede");//密钥生成器
// keyGen.init(168); //可指定密钥长度为112或168,默认为168
// SecretKey secretKey = keyGen.generateKey();//生成密钥
// byte[] key = secretKey.getEncoded();//密钥字节数组 }
// SecretKey secretKey1 = new SecretKeySpec(key, "DESede");//恢复密钥

    
    //key生成2
    String keyString = "8daluqp9xm2kw6zs1htawqee";

    SecretKey secretKey2 = new SecretKeySpec(keyString.getBytes(), "DESede");
            
    //加密
    String data = "hello";
    System.out.println(data.getBytes());
    Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");//Cipher完成加密或解密工作类
    cipher.init(Cipher.ENCRYPT_MODE, secretKey2);//对Cipher初始化,解密模式
    byte[] cipherByte = cipher.doFinal(data.getBytes());//加密data
    System.out.println(cipherByte);
    IvParameterSpec iv = new IvParameterSpec(cipher.getIV());
    //解密
    cipher.init(Cipher.DECRYPT_MODE,secretKey2,iv);
    byte[] cipherByte2 = cipher.doFinal(cipherByte);
    System.out.println(new String(cipherByte2));

}
}

====================

php 版本的 3des/cbc/PKCS5Padding 该如何实现?

阅读 4.1k
1 个回答

phpseclib 这个类库里面好像带这个支持

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题