Java Bouncycastle RSA密钥大小和填充

Java Bouncycastle RSA密钥大小和填充,java,encryption,rsa,bouncycastle,Java,Encryption,Rsa,Bouncycastle,我正在使用Bouncycastle的RSA实现。我得到了一个具有以下选项的密码实例 "RSA/ECB/PKCS1Padding" 我的问题是你如何选择使用哪种填充物?我能加密的最大数据量是多少?AFAIK RSA有一个限制。我也找不到ECB代表什么?在rsa中,加密模式被忽略。如果要加密的日期很大,请自己计算块数,下面的示例可能会帮助您: byte[] var21; try { Cipher cp = Cipher.getInstanc

我正在使用Bouncycastle的RSA实现。我得到了一个具有以下选项的密码实例

"RSA/ECB/PKCS1Padding"

我的问题是你如何选择使用哪种填充物?我能加密的最大数据量是多少?AFAIK RSA有一个限制。我也找不到ECB代表什么?

在rsa中,加密模式被忽略。如果要加密的日期很大,请自己计算块数,下面的示例可能会帮助您:

        byte[] var21;
        try {

            Cipher cp = Cipher.getInstance("RSA/ECB/PKCS1Padding", new BouncyCastleProvider());
            cp.init(mode, key);
            int blockSize = cp.getBlockSize();
            int blocksNum = (int) Math.ceil((double) data.length / (double) blockSize);
            int calcSize = blockSize;
            Object buffer = null;
            outputStream = new ByteArrayOutputStream();
            for (int i = 0; i < blocksNum; ++i) {
                if (i == blocksNum - 1) {
                    calcSize = data.length - i * blockSize;
                }

                byte[] var22 = cp.doFinal(data, i * blockSize, calcSize);

                try {
                    outputStream.write(var22);
                } catch (IOException var19) {
                    throw new GeneralSecurityException("RSA error", var19);
                }
            }
            var21 = outputStream.toByteArray();
        } finally {
            if (outputStream != null) {
                try {
                    outputStream.close();
                } catch (IOException var18) {
                    ;
                }
            }

        }
字节[]var21;
试一试{
Cipher cp=Cipher.getInstance(“RSA/ECB/pkcs1ppadding”,new BouncyCastleProvider());
cp.init(模式、键);
int blockSize=cp.getBlockSize();
int blocksNum=(int)Math.ceil((double)data.length/(double)blockSize);
int calcSize=块大小;
对象缓冲区=null;
outputStream=新的ByteArrayOutputStream();
对于(int i=0;i
ECB=Electronic codebook在本例中,RSA忽略模式ECB。请使用pkcsp添加。您可以加密的最大数据量是以字节为单位的模的大小减去11。@HamzaYerlikaya可以在以下问题中添加更多详细信息:为什么使用“RSA/ECB/PKCS1Padding”以及您试图用此密码存档什么。@Vladimir我将使用此密码加密AES密钥,而AES密钥反过来将加密一个大文件。“RSA/ECB/PKCS1Padding”从bouncycastle示例中获得了此设置,因此我想知道每个选项的作用。