我认为,我有几类加密,但出现了问题。
My client/server model is simple. The client connects to the server, sends any messages in the message queue and then disconnects.
发出的第一个电文是绝对的,但在发出后发出的任何电文似乎都是错误的(第16条示意图)。 奇怪的是,所有其他区块似乎都属于罚款,这非常奇怪,因为我是CBC。
生态环境:
encryptionAlgorithm = "AES";
encryptionBitCount = 256;
encryptionMessageLength = 176;
hashingAlgorithm = "PBEWithSHA256And256BitAES-CBC-BC";
hashingCount = //some number;
cipherTransformation = "AES/CBC/PKCS7Padding";
salt = //some bytes;
我的客户逻辑如下:
- Init cipher via:
cipher.init(Cipher.ENCRYPT_MODE, cipherInitKey);
- Connect to server
每一信息都是信息查询。
- Generate and write IV to socket via:
stream.write(cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV());
- Generate a write ciphertext to socket via:
stream.write(cipher.doFinal(message));
结束
- Disconnect
我的服务器工程逻辑如下:
收到的每 message
- Read IV from socket (16 bytes).
- Init the cipher by:
cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv));
- Read the message from socket (its a fixed size). (176bytes)
- Decipher message via
cipher.doFinal(message)
结束
奇怪的是,它在当地与一家java客户和服务器完全合作。 但是,当我把服务器放在我的甚高频中,并有一个自发的客户时,它就会中断。
<>Update: 看来,在信息一开始,我实际上可能会遇到额外的障碍——进行更多的测试。