如何在Java中实现RSA加解密
我的公钥和私钥生成工作正常。我的下一步是创建另外两个方法-加密和解密。我只是不确定如何实现加密和解密。我有一些想法,但似乎没有什么是一个好的解决办法。有什么见解吗如何在Java中实现RSA加解密,java,rsa,Java,Rsa,我的公钥和私钥生成工作正常。我的下一步是创建另外两个方法-加密和解密。我只是不确定如何实现加密和解密。我有一些想法,但似乎没有什么是一个好的解决办法。有什么见解吗 public class RSA { private final static BigInteger one = new BigInteger("1"); private final static SecureRandom random = new SecureRandom(); // prime numbe
public class RSA
{
private final static BigInteger one = new BigInteger("1");
private final static SecureRandom random = new SecureRandom();
// prime numbers
private BigInteger p;
private BigInteger q;
// modulus
private BigInteger n;
// totient
private BigInteger t;
// public key
private BigInteger e;
// private key
private BigInteger d;
/**
* Constructor for objects of class RSA
*/
public RSA(int N)
{
p = BigInteger.probablePrime(N/2, random);
q = BigInteger.probablePrime(N/2, random);
// initialising modulus
n = p.multiply(q);
// initialising t by euclid's totient function (p-1)(q-1)
t = (p.subtract(one)).multiply(q.subtract(one));
// initialising public key ~ 65537 is common public key
e = new BigInteger("65537");
}
public int generatePrivateKey()
{
d = e.modInverse(t);
return d.intValue();
}
}
既然你还没有真正提出一个具体的问题,我就给你一个有点切题的答案 DIY加密有点像DIY核电
如果你想学习加密编码,我建议你阅读,并使用它,而不是自己动手。因为你还没有真正问过一个具体的问题,我会给你一个有点切题的答案 DIY加密有点像DIY核电
如果你想学习加密编码,我建议你阅读,并使用它,而不是你自己的。不确定你在问什么,但对于RSA加密,如果你的模数是n位宽,你的公钥也将是n位宽。简单的
int
不起作用
另请参见
我自己在Java中对RSA加密的拙劣尝试:不确定您的要求,但对于RSA加密,如果您的模数为n位宽,则您的公钥也将为n位宽。简单的
int
不起作用
另请参见
我自己在Java中对RSA加密的拙劣尝试:您的私钥生成功能可能会失败。作为练习,确定原因。提示:当prob=2/65537时,它将大约失败。另外,
d.intValue()
是一个无意义的量。您的私钥生成功能可能会失败。作为练习,确定原因。提示:当prob=2/65537时,它将大约失败。而且,d.intValue()
是一个无意义的量。