检查我的Java RSA算法

检查我的Java RSA算法,java,rsa,Java,Rsa,我必须实现一个RSA算法来对文档进行签名,并检查是否有人对其进行了更改。这个对吗?我不能在不知道是否可以的情况下去试生产 private BigInteger n; private BigInteger e; private BigInteger d; private final static SecureRandom random = new SecureRandom(); private BigInteger getRandomInteger(int lengthInBits){

我必须实现一个RSA算法来对文档进行签名,并检查是否有人对其进行了更改。这个对吗?我不能在不知道是否可以的情况下去试生产

private BigInteger n;
private BigInteger e;
private BigInteger d;
private final static SecureRandom random = new SecureRandom();

private BigInteger getRandomInteger(int lengthInBits){
    return BigInteger.probablePrime(lengthInBits/2, random);
}

public RSACypher(int lengthInBits) {
    BigInteger phi;
    do {
        BigInteger p    = getRandomInteger( lengthInBits );
        BigInteger q    = getRandomInteger( lengthInBits );

        phi             = (p.subtract(BigInteger.ONE)).multiply(q.subtract(BigInteger.ONE));

        n   = p.multiply(q);
        e   = BigInteger.probablePrime(lengthInBits - 1, random);
        d   = e.modInverse(phi);
    } while ( ( n.bitCount() > (lengthInBits/2) ) || ( e.gcd( phi ).intValue() != 1 ) );
}

提前感谢

基于RSA规范编写单元测试。。。
您可以从已经编写的测试中获得灵感,例如,但是编写您自己的测试将使您对算法知识更有信心(这是我的观点;-)

“我不能在不知道是否可以的情况下进行试生产…”-Gold!假设,您编写了一个测试…当然,我有测试,并使用我自己的代码,加密和解密。。。但我不知道这是否是标准算法,例如,你知道Java已经内置了RSA加密,对吗?是的,我知道。谢谢