使用RSA注意事项

比较以下两种写法

第一种:这种写法会造成内存溢出

1
Cipher cipher = Cipher.getInstance("RSA", new BouncyCastleProvider());

第二种:推荐这种写法

1
2
3
4
5
// BC 可用 BouncyCastleProvider.PROVIDER_NAME 代替
if (StringUtils.isNullOrEmpty(Security.getProperty("BC"))) {
Security.addProvider(new BouncyCastleProvider());
}
Cipher cipher = Cipher.getInstance("RSA", "BC");

还有一种写法是要替换jdk的jar包,不推荐

要依赖bcprov-jdk16包

1
2
3
4
5
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
</dependency>

参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
22-04-26 16:43:32 INFO main c.t.c.u.e.RsaUtils.generateKeyPair(98)  | init RSA KeyPair:
22-04-26 16:43:32 INFO main c.t.c.u.e.RsaUtils.generateKeyPair(99) | RSA Private CRT Key
modulus: bfb189b6d4b94b806a5da8e47f2b0573489506e34795fdc083954cbbfb56032d1792db38d25d9c54cc25b6e2fe09cf28b9dfcce5279e73c1ee8b7a0877226da18e136edaf49c2063fb5ff8bcd0bc4eb14ddf733f7956455b9923a38c4e12f3184a65f4896ecfd60dc3b47de320339bb770569fd9818672db2f4703b657bca2ed
public exponent: 10001
private exponent: 179103063826c392790124b75aaef64f92f7c74dffc9ffd5401805c402853384c2a62a4f55056f27b9a5555398b9a9ff2ec2c5d4d24717a21aea88c92ba44ee7dc00e6233562bbbc4e1033ad3154a2517028261b8fe7c765ce221e2eb7124ae836640f8b4639b681286260fcc32165eb74733b8cf4651a4a1182e8d6537b6461
primeP: f0a25d1a81062d7bdd2da210a5fbfabc60f5c54095d5671779721ec699667625d83f4b7b8603f5f76c6bdf590c471716197c74309a141c1b602c46f540fdbcf9
primeQ: cbef247ea9db5ecf05eff0a28a13df37db7b72d7a5da0c10aa5b1dbc5b32f46658b933cc8ef0e67233b6421afe583280075d54fdc5ec7473bfd270f779a25695
primeExponentP: 5e20e5128d0e0194c63c277d23b0a1b036ad6cef8aace39ac722e0ef06ea91a4d4264e3c8f7bd52767fdfa6c36e5481e98f199f1b913ccbad8aff941ce9e72e1
primeExponentQ: 77345e3cbbc4c2f27821fca2c5db3fcb42bc3230e37d4538289c0211abad6936b9fde7cd56707203a73e8dfd8156c48e19bff082364334fec3cd9ac2cd929ad1
crtCoefficient: 5aa5922865687474de624dc51af3ca86aea3e98e3d784b2317b163233148928aa0c7674bf7f1cccaaf3cfe7778f52bd7b9e262ead7a7cf60f137d2214584a93d

22-04-26 16:43:32 INFO main c.t.c.u.e.RsaUtils.generateKeyPair(100) | RSA Public Key
modulus: bfb189b6d4b94b806a5da8e47f2b0573489506e34795fdc083954cbbfb56032d1792db38d25d9c54cc25b6e2fe09cf28b9dfcce5279e73c1ee8b7a0877226da18e136edaf49c2063fb5ff8bcd0bc4eb14ddf733f7956455b9923a38c4e12f3184a65f4896ecfd60dc3b47de320339bb770569fd9818672db2f4703b657bca2ed
public exponent: 10001

# 参数说明
modulus => n
public exponent => e
private exponent => d
prime1 => p
prime2 => q
exponent1 => dmp1
exponent2 => dmq1
coefficient => coeff
  • 本文作者: forever杨
  • 本文链接: https://blog.yl-online.top/posts/ef742936.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。如果文章内容对你有用,请记录到你的笔记中。本博客站点随时会停止服务,请不要收藏、转载!