数组索引超出范围异常,请帮帮我

时间:2017-12-02 16:50:22

标签: java syntax-error indexoutofboundsexception

每当我运行RSA算法的程序时,都会出现java.lang.ArrayIndexOutOfBoundsException:0错误。

package cn;
import java.math.BigInteger;
import java.security.SecureRandom;
public class rsa 
{
    private final static BigInteger one = new BigInteger("1");
    private final static SecureRandom random = new SecureRandom();
    private BigInteger privateKey;
    private BigInteger publicKey;
    private BigInteger modulus;
    rsa(int N) 
    {
        BigInteger p = BigInteger.probablePrime(N/2, random);
        BigInteger q = BigInteger.probablePrime(N/2, random);
        BigInteger phi = (p.subtract(one)).multiply(q.subtract(one));
        modulus = p.multiply(q);                                  
        publicKey = new BigInteger("65537");     
        privateKey = publicKey.modInverse(phi);
    }
    BigInteger encrypt(BigInteger message) 
    {
        return message.modPow(publicKey, modulus);
    }
    BigInteger decrypt(BigInteger encrypted) 
    {
        return encrypted.modPow(privateKey, modulus);
    }
    public String toString() 
    {
        String s = "";
        s += "public  = " + publicKey  + "\n";
        s += "private = " + privateKey + "\n";
        s += "modulus = " + modulus;
        return s;
    }
    public static void main(String[] args) 
    {
        int N = Integer.parseInt(args[0]);
        rsa key = new rsa(N);
        System.out.println(key);
        BigInteger message = new BigInteger(N-1, random);
        BigInteger encrypt = key.encrypt(message);
        BigInteger decrypt = key.decrypt(encrypt);
        System.out.println("message   = " + message);
        System.out.println("encrypted = " + encrypt);
        System.out.println("decrypted = " + decrypt);
    }
}

有人可以通过查找错误存在的位置来帮助我。在eclipse IDE中,错误在主函数的第二行指出。 rsa key = new rsa(N); < = This this

0 个答案:

没有答案