私はStringに格納されているXmlを持っています。セッション鍵(AESと256bit)を使って暗号化する必要があります。セッションキーを使用してXmlを暗号化します
私は鍵を生成するには、次のコードを使用しています:
public byte[] generateSessionKey() throws NoSuchAlgorithmException, NoSuchProviderException
{
KeyGenerator kgen = KeyGenerator.getInstance("AES","BC");
kgen.init(SYMMETRIC_KEY_SIZE);
SecretKey key = kgen.generateKey();
byte[] symmKey = key.getEncoded();
return symmKey;
}
をセッション鍵でデータを暗号化するために、次のコードを使用する:
public byte[] encryptUsingSessionKey(byte[] skey, byte[] data) throws InvalidCipherTextException
{
PaddedBufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new AESEngine(), new PKCS7Padding());
cipher.init(true, new KeyParameter(skey));
int outputSize = cipher.getOutputSize(data.length);
byte[] tempOP = new byte[outputSize];
int processLen = cipher.processBytes(data, 0, data.length, tempOP, 0);
int outputLen = cipher.doFinal(tempOP, processLen);
byte[] result = new byte[processLen + outputLen];
System.arraycopy(tempOP, 0, result, 0, result.length);
return result;
}
だから、私が知りたい、私は右のそれをやっています間違っている?
すべての提案をいただき、ありがとうございます。しかし、私はまた、上記のコードで行われた暗号化が正しいかどうかを知りたいですか? – Mudit
それは「正しいかどうか」が何を意味するのかによって異なります。ベストプラクティスのセキュリティ:いいえ – zaph
AESとPKCS7Paddingでセッションキーを使用してXMLを暗号化したかったので、上記のコードの暗号化結果を復号化できるかどうかを知りたいですか?今私はセキュリティに関心がありません – Mudit