问题描述
我们实施了Diffie-Hellman密钥交换算法:
We implemented Diffie-Hellman Key Exchange algorithm:
KeyAgreement aKeyAgree = KeyAgreement.getInstance("DH");
keyAgreement.init(myPrivateKey);
keyAgreement.doPhase(otherPublicKey)
现在我们需要生成一个用于AES的秘密加密。方法 generateSecret(String algorithm)
。我想我应该用'AES'
参数调用它。
Now we need to generate a secret to use for AES encryption. There is method generateSecret(String algorithm)
. I think I should call it with 'AES'
argument.
但对于DH我使用512位长度公开密钥所以秘密也应该是512位长度。但AES允许256位长度的密钥作为最大值。没有参数的普通方法 generateSecret()
返回512位DH密钥。但是什么 generateSecret(String)
呢?它如何将512位密钥转换为256/128位AES密钥?
But for DH I use 512-bit length public keys so the secret should be 512-bit length too. But AES allows 256-bit length keys as the maximum. The plain method generateSecret()
without parameters returns 512-bit DH secret. But what generateSecret(String)
does? How it transforms 512-bit secret to 256/128-bit AES key?
推荐答案
此方法只是截断generatedSecret()。
This method just truncate generatedSecret().
这篇关于KeyAgreement.generateSecret(String algorithm)有什么方法呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!