当前位置: 首页 > 面试题库 >

从Java私有获取公钥

戚峻
2023-03-14
问题内容

我记得很久以前使用OpenSSL进行过此操作,但是我想知道是否可行以及如何进行,我从未在Java上使用过密码学。


问题答案:

您不能直接从另一个生成任何一个密钥。从数学上讲这是不可能的。如果你有一个含有密钥团 两者 的公钥和私钥,你可以提取它们的相对轻松的任何一个。

编辑,2017年: 多年之后,人们对加密技术有了更深入的了解,现在我很清楚这个答案并不正确。

引用维基百科:

公用密钥由模数n和公用(或加密)指数e组成。专用密钥由模数n和专用(或解密)指数d组成,它们必须保密。p,q和λ(n)也必须保密,因为它们可用于计算d。

可以将公共模数n计算为p×q。原始私钥唯一缺少的是e,但是通常选择此值为65537,如果没有,您仍然可以根据d和λ(n)计算e。

但是,许多私钥存储格式实际上包含公共模数n和其他组件,因此您可以直接提取值。

编辑,2018年: 仍然对此表示反对,这是正确的!我将这个答案留给别人,以便人们知道为什么我本来是错的,并提醒自己以后不要错。



 类似资料:
  • 我已经阅读了如何在OpenSSL中从ECDSA私钥获取公钥? 并想做同样的事情,但在Java中与充气城堡。 我也见过Bouncy Castle ESCDA从私钥创建公钥,但这并没有帮助。

  • 我正在使用Ruby 2.5.x OpenSSL库研究椭圆曲线。我可以很容易地使用 但是给定一个私钥,我想重新生成公钥。 我知道OpenSSL可以做到这一点,因为命令行允许您这样做,Ruby比特币项目也可以做到这一点。但是Ruby比特币项目使用FFI而不是Ruby提供的接口有自己的OpenSSL接口。 Ruby 2.5.x openssl 库是否没有公开足够的 OpenSSL 接口,以便能够从私钥生

  • 问题内容: 我想知道是否有一种方法可以获取java中某个类的所有私有字段及其类型。 例如,假设我有一堂课 现在,我想获得的所有私有字段(,,类)(如果不知道所有领域前期的名称),并检查它们的类型。 问题答案: 有可能获得与方法的所有字段的。然后,您必须检查每个字段的修饰符以查找私有字段: 请注意,这不会返回继承的字段。 最终,您可以使用Field.getType()方法获得字段的类型。

  • 现在,我想获取类的所有私有字段(、、)(事先不知道所有字段的名称)并检查它们的类型。

  • Auth0提供了两个JWT库,一个用于Node:Node jsonwebtoken,另一个用于Java:Java JWT。 我创建了私有/公钥对,并在Node中成功地使用了node-jsonwebToken: 但是我发现没有办法在java-jwtJava做同样的事情。 有人有一个如何在Java中为JWT使用私钥/公钥的工作示例吗?

  • 问题内容: 我正在尝试运行一个容器,该容器将公开私有GitHub存储库上的软件包中的golang服务。 由于我与GCE合作,因此我的入门图片是google / debian:wheezy。 安装所有必需的依赖项和工具后,我正在运行 包裹是私人仓库。 我添加了GitHub SSH密钥以允许从私有存储库克隆到docker文件: 尽管如此,当go尝试克隆存储库时,我在go get流程中遇到了一个错误: