如何在Java中生成非安全的KeyPair?

时间:2016-01-27 00:31:15

标签: java

我们目前有4个内部服务器由nginx服务器负载平衡。我们所有客户当前通过Https连接并与我们的服务通信(由负载均衡器提供)。情况并非总是如此。因此,我们在maven设置中有一些创造性的身份验证代码,其中包括在构建时生成密钥对,以便服务器可以通过公钥发送用户加密其凭据并将其发送回服务器。

问题在于我讨厌这个加载antrun过程的一面,这使得很难使用其他工具来对付这个项目,它似乎总是在最不方便的时刻爬上来咬我。

由于其他服务仍在使用需要密钥对的旧身份验证方法,因此我无法将其删除并将其向前移动。至少我现在必须支持它。因为我的服务是负载平衡的,所以我还必须在平衡器后面的所有服务器之间保持密钥对同步。

对于整个漫长的过程,我想做类似的事情

KeyPair pair = createPredictableKeypairFromThisString("mySecret!");

有关如何在保持向后兼容性的同时做到这一点的任何建议?我可以说,真正实现这一目标的唯一方法是伪造SecureRandom对象以吐出可预测的字节。我宁愿不必做那样的事情。

1 个答案:

答案 0 :(得分:3)

只需生成KeyPair,即任何KeyPair。

将其序列化为ByteArrayOutputStream。

将生成的字节数组转换为BASE64 blob-o-text。

将blob-o-text写入您的代码。

在运行时,将BASE64转换为字节数组。

从ByteArrayInputStream中读取KeyPair,并返回KeyPair。

你也可以创建一个带常量的静态字节数组,所以做你喜欢的事情。