我有一个私人/公共安全证书。我的 Java 同行拥有公钥。我需要获取一个字符串,对其进行签名,然后将其发送到 Java 以验证数据和签名。
微软和世界其他地方如何对数据进行编码/签名似乎是一个众所周知的问题,即字节的处理方式。众所周知,我找不到解决方案。如果他们拿走了我的字符串和私钥,他们显然可以正确签名并验证它。如果我使用我的字符串,我可以在 .Net 中对其进行签名和验证。我已经看到了许多从 ASN1 转换为 Microsoft 格式(我认为是 P1363)的方法,但没有从 Microsoft、C# 转换为 Java 的 ASN1。我不知道发生的事情足以理解如何进行逆向工程。
我已经探索了http://www.codeproject.com/Articles/25487/Cryptographic-Interoperability-Keys但最终结果不是 java 端所需要的。我可以签署一个字符串,我得到一个签名,但 Java 家伙告诉我它需要以 MC 开头,第一个字节是指示符。我没有看到这个。
谢谢!