Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PGP密钥环和Java密钥库文件之间转换?_Java_Android_Encryption_Cryptography_Pgp - Fatal编程技术网

如何在PGP密钥环和Java密钥库文件之间转换?

如何在PGP密钥环和Java密钥库文件之间转换?,java,android,encryption,cryptography,pgp,Java,Android,Encryption,Cryptography,Pgp,我目前正在开发一款Android应用程序,它可以与远程机器上的服务器进程进行对话。Android客户端和服务器的安装包都需要加密签名;具有Java密钥库文件(JKS)的Android客户端和具有来自密钥环文件的PGP密钥的服务器。如果可能的话,我希望通过使用相同的密钥对两个包进行签名来减少依赖性,但是两个签名工具都不支持相反的文件格式 是否可以将PGP密钥环文件转换为JKS文件?或者,是否可以将JKS文件转换为PGP密钥环文件?如果是,怎么做 编辑澄清:这里的想法是使用一个加密密钥作为两个不同签

我目前正在开发一款Android应用程序,它可以与远程机器上的服务器进程进行对话。Android客户端和服务器的安装包都需要加密签名;具有Java密钥库文件(JKS)的Android客户端和具有来自密钥环文件的PGP密钥的服务器。如果可能的话,我希望通过使用相同的密钥对两个包进行签名来减少依赖性,但是两个签名工具都不支持相反的文件格式

是否可以将PGP密钥环文件转换为JKS文件?或者,是否可以将JKS文件转换为PGP密钥环文件?如果是,怎么做


编辑澄清:这里的想法是使用一个加密密钥作为两个不同签名工具的输入。工具之间互不了解;这只是一些随机的钥匙。我不想用PGP对Android软件包进行签名,也不想用Android的签名工具对服务器安装软件包进行签名,因为这两者都会使最终用户无法读取输出。

虽然理论上可能,但肯定没有工具可以做到这一点。如果你想自己写一本,有很多障碍需要克服。在低级视图中,有许多不同的数据签名方法(即使您仅限于RSA,仍有许多标准和参数可供选择)。在高级视图中,此类密钥文件及其证书前端抽象或pgp端的“密钥”包含许多元信息,如有效期、所有权信息等。如果你真的可以处理低加密问题,那么你仍然需要定义一些从一组元数据到另一组元数据的转换


此外,从加密的角度来看,任何密钥重用都是强烈反对的。如果以非预期的方式使用声音原语,通常会有许多方法导致它们分离。当然,Android工具和PGP工具背后的算法的作者和实现者并没有想到他们的工具会与这些交叉生成的密钥一起使用。

但是,仅仅拥有其他格式的(让我们假设:RSA)密钥并不是你想要的。我假设您还希望生成带有JKS密钥的PGP签名或带有PGP密钥的Android签名。它们实际上并不使用相同的结构,是吗?嗯,文件格式明显不同,但用于签名内容的基本算法应该与PGP或Android签名相同。或者这是我的理解。即使他们使用(或支持)相同的签名方案(例如,RSA和具有相同哈希的概率签名方案),如果仍然无法为一个应用程序和另一个应用程序生成可读文件,这对您有何帮助?我知道这似乎是一个好主意,但实际上构建这样一个跨系统的解决方案似乎不值得付出努力,而只是使用两个(不兼容的)键。我认为我们没有正确地理解对方。编辑了原始问题以使其更清楚。