Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 Java 编写的 Web 服务,通过公钥验证数字签名的请求。客户端可以用不同的语言编写,例如 PHP。所以我想明智地选择一个密钥/签名算法......例如,关于签名的官方 Java教程提供了DSA密钥和SHA1withDSA签名,但是对于将后者与 PHP 一起使用存在一些抱怨。
DSA
SHA1withDSA
我可以选择哪种签名算法?
RSA。Java 有大量的库,它是使用最广泛的。也不应该使用 SHA1。
真正确认您以这些平台支持的方式进行操作的唯一方法是自己验证。即使您使用理论上应该可以使用的东西,它们的实现也可能会有所不同,从而使其无法正常工作。
你可以研究谷歌和 Facebook 是如何做的。您可以阅读人们使用的库中的代码,这些代码用于使用不同平台与这些服务进行通信,以了解您希望如何实现您的服务。