gpt4 book ai didi

java - 这个加密代码有什么问题吗?

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:12 26 4
gpt4 key购买 nike

我有以下代码可以生成 AES-128 一次性 key 。之后,我使用从证书读取的 RSA 公钥加密该一次性 key 。加密后的字节始终为0。为什么?

    // Generate a one-time key
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(128);
SecretKey oneTimeKey = keyGenerator.generateKey();
System.out.println("Encrypted bytes length: " + oneTimeKey.getEncoded().length); // prints "Plain bytes length: 16"

// Retrieve public key from certificate
FileInputStream fileInputStream = new FileInputStream("D:\\test.cer");
CertificateFactory factory = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate) factory.generateCertificate(fileInputStream);
PublicKey publicKey = certificate.getPublicKey();

// Encrypt one-time key using the public key.
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
CipherOutputStream cipherOutputStream = new CipherOutputStream(byteArrayOutputStream, cipher);
cipherOutputStream.write(oneTimeKey.getEncoded(), 0, oneTimeKey.getEncoded().length);

// Retrieve the encrypted bytes.
System.out.println("Encrypted bytes length: " + byteArrayOutputStream.toByteArray().length); // prints "Encrypted bytes length: 0"
cipherOutputStream.close();

最佳答案

在获取字节数组之前尝试刷新密码输出流。

关于java - 这个加密代码有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28450929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com