長さの制約を尊重する必要があるため、暗号化されたデータを元のテキストと同じ長さにしたいと考えています。を使用してBouncyCastle
います。
キーペアを生成するコードは次のとおりです。
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
keyGen.initialize(512);
KeyPair keypair = keyGen.genKeyPair();
PublicKey pub = keypair.getPublic();
byte[] pubs = pub.getEncoded();
そして、暗号化するコードは次のとおりです。
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING");
PublicKey pk = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(pubs));
cipher.init(Cipher.ENCRYPT_MODE, pk);
byte[] cipherBytes = cipher.doFinal(plainArray);
エンコードされたデータは非常に大きいです。元のデータと同じくらい小さくするにはどうすればよいですか?