在java中生成RSA密钥对时出错
我需要用java生成RSA密钥对。我尝试了以下方法在java中生成RSA密钥对时出错,java,rsa,key-pair,Java,Rsa,Key Pair,我需要用java生成RSA密钥对。我尝试了以下方法 <%@page import="java.security.Key"%> <%@page import="java.security.KeyPair"%> <%@page import="java.security.KeyPairGenerator"%> <html> <head> <meta http-equiv="Content-Type" content="text
<%@page import="java.security.Key"%>
<%@page import="java.security.KeyPair"%>
<%@page import="java.security.KeyPairGenerator"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair kp = kpg.genKeyPair();
Key publicKey = kp.getPublic();
Key privateKey = kp.getPrivate();
out.println("PrivateKey:" + privateKey);
out.println("PublicKey:" +publicKey);
%>
</body>
</html>
我想将这个公钥和私钥插入数据库..,所以它应该很小。。,
请帮助我……,您将密钥大小指定为2048位。根据您的需要进行修改 换行 kpg.初始化(2048) 您希望密钥的长度(数据库支持的长度) 初始化(密钥的长度) 请检查以下初始化方法的文档:
根据定义,RSA密钥对于任何可行的安全性来说都是很大的。如果需要较小的密钥,则需要切换到对称加密(AES)(如果合适)或椭圆曲线加密(ECC)。使用ECC时,您仍然需要使用已知或命名的曲线,否则您的关键点仍然很大
创建较小的RSA密钥有一个技巧:让它们在已知状态下用伪随机数生成器生成(并保存此状态)。然而,该解决方案依赖于实施细节;如果实现变化很小,您可能会得到不同的密钥对,因此不建议这样做。希望我能原谅在Stackoverflow上提到这一切。直接回答,尽管我想知道为什么您的数据库需要这么小。普通的服务器应该处理这种大小的数据而不会有太多麻烦。这与加密代码完全无关。您可能需要一个单独的问题并发布整个stacktrace。检查以查看有关安全密钥大小的更多信息。512位对您来说可能太大,但肯定不安全。
16357206704297604671856121853158662273841275717667103178663872982510600516942159
92471768797559279747649637039251872720857162699034207744835023844213276461437235
62716346732316118850882643586149442248236190221255104694771208469870082732902270
59176928873062588804197238673756206442086637249330898308938378378066971049120606
00637770477260198883852885925396692544417880794817246467903698369172064896388091
16103893445868520394887338681032080760488563541369139420725965115593026544388053
89245256261473050095495300460611881341368409054850562520674680342153131165041561
752280363820799023393672676767368529573441046320095568301
public exponent: 65537