Java RSA加密密钥对的问题

lwh_1024 2015-06-26 10:33:29
关于RSA加密,
能够keyPairGen.generateKeyPair()获取密钥对
用私钥进行加密,然后用公钥解密;或者,用公钥加密,用私钥解密都没问题。
我的问题是关于秘钥对的产生,能否指定公钥或私钥中的一个,然后产生另一个?
例如:指定公钥,然后通过公钥产生对应的私钥,反之也行,
谢谢!
...全文
360 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
JPF1024 2015-07-22
  • 打赏
  • 举报
回复
引用 6 楼 lwh_1024 的回复:
[quote=引用 5 楼 dcxy0 的回复:] [quote=引用 4 楼 lwh_1024 的回复:] [quote=引用 2 楼 lcr06051210 的回复:] RSA是数字签名算法,如果我没记错采用的应该是私钥进行签名,公钥进行验证。例如DES、DSA、ECDSA等很多算法都是采用这样的方式。先使用keyPairGenerator.generateKeyPair()获取一个密钥对,然后获取公钥和私钥。私钥是用来进行加密,公钥是用来解密的。
O(∩_∩)O谢谢! 据我所知,数字签名算法是不可逆的,如MD5,SHA等等。而DES、DSA属于对称的加密算法,加解密密钥相同。RSA这种非对称算法才是我需要用到的。[/quote] MD5已经不太安全了,其实如果你需要加密消息,可以使用RSA,可以参考书《Java加密与解密的艺术》。。[/quote] 是的,MD5在2013年就被认为是不安全的HASH算法。目前SHA256还是不错的。O(∩_∩)O谢谢![/quote] 其实还要注意一个时间问题,因为解密也是需要时间的
lwh_1024 2015-07-22
  • 打赏
  • 举报
回复
引用 5 楼 dcxy0 的回复:
[quote=引用 4 楼 lwh_1024 的回复:] [quote=引用 2 楼 lcr06051210 的回复:] RSA是数字签名算法,如果我没记错采用的应该是私钥进行签名,公钥进行验证。例如DES、DSA、ECDSA等很多算法都是采用这样的方式。先使用keyPairGenerator.generateKeyPair()获取一个密钥对,然后获取公钥和私钥。私钥是用来进行加密,公钥是用来解密的。
O(∩_∩)O谢谢! 据我所知,数字签名算法是不可逆的,如MD5,SHA等等。而DES、DSA属于对称的加密算法,加解密密钥相同。RSA这种非对称算法才是我需要用到的。[/quote] MD5已经不太安全了,其实如果你需要加密消息,可以使用RSA,可以参考书《Java加密与解密的艺术》。。[/quote] 是的,MD5在2013年就被认为是不安全的HASH算法。目前SHA256还是不错的。O(∩_∩)O谢谢!
JPF1024 2015-07-22
  • 打赏
  • 举报
回复
引用 4 楼 lwh_1024 的回复:
[quote=引用 2 楼 lcr06051210 的回复:] RSA是数字签名算法,如果我没记错采用的应该是私钥进行签名,公钥进行验证。例如DES、DSA、ECDSA等很多算法都是采用这样的方式。先使用keyPairGenerator.generateKeyPair()获取一个密钥对,然后获取公钥和私钥。私钥是用来进行加密,公钥是用来解密的。
O(∩_∩)O谢谢! 据我所知,数字签名算法是不可逆的,如MD5,SHA等等。而DES、DSA属于对称的加密算法,加解密密钥相同。RSA这种非对称算法才是我需要用到的。[/quote] MD5已经不太安全了,其实如果你需要加密消息,可以使用RSA,可以参考书《Java加密与解密的艺术》。。
  • 打赏
  • 举报
回复
我的问题是关于秘钥对的产生,能否指定公钥或私钥中的一个,然后产生另一个? -------------- 这是不可能的,公钥加密算法的特点就是通过一个无法生成另外一个!
lwh_1024 2015-07-21
  • 打赏
  • 举报
回复
引用 2 楼 lcr06051210 的回复:
RSA是数字签名算法,如果我没记错采用的应该是私钥进行签名,公钥进行验证。例如DES、DSA、ECDSA等很多算法都是采用这样的方式。先使用keyPairGenerator.generateKeyPair()获取一个密钥对,然后获取公钥和私钥。私钥是用来进行加密,公钥是用来解密的。
O(∩_∩)O谢谢! 据我所知,数字签名算法是不可逆的,如MD5,SHA等等。而DES、DSA属于对称的加密算法,加解密密钥相同。RSA这种非对称算法才是我需要用到的。
lwh_1024 2015-07-21
  • 打赏
  • 举报
回复
引用 1 楼 a291263379 的回复:
不是说公钥加密,私钥解密么。如果用公钥能生成私钥,那还怎么能保密呢?看看这个

O(∩_∩)O谢谢!
你说的也有道理。
我的目的是需要设计一个加密体系,用于存储公司员工工资等敏感信息,并确保开发人员(知道加密方式)与运维人员(能获取数据)串通起来,也无法破解工资信息。
基于RSA非对称算法,设计如下:
lcr06051210 2015-06-30
  • 打赏
  • 举报
回复
RSA是数字签名算法,如果我没记错采用的应该是私钥进行签名,公钥进行验证。例如DES、DSA、ECDSA等很多算法都是采用这样的方式。先使用keyPairGenerator.generateKeyPair()获取一个密钥对,然后获取公钥和私钥。私钥是用来进行加密,公钥是用来解密的。
豫让_______ 2015-06-29
  • 打赏
  • 举报
回复
不是说公钥加密,私钥解密么。如果用公钥能生成私钥,那还怎么能保密呢?看看这个

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧