在Java中使用x509对任意数据进行签名

在Java中使用x509对任意数据进行签名,java,cryptography,x509,Java,Cryptography,X509,我有一个API,它通过一个对随机chalange的签名响应来提供身份验证。服务器向客户端发送一个随机字符串,客户端使用先前建立的密钥对该数据进行签名,然后将该数据发送回服务器。我需要签名的格式大致相当于PGP clear sign或Distached signature格式。仅使用官方Java API(如no bouncy castle)可以做到这一点吗?oracle.security.crypto.cert.PKCS7Java.security.Signature有什么问题?它没有将签名封装为

我有一个API,它通过一个对随机chalange的签名响应来提供身份验证。服务器向客户端发送一个随机字符串,客户端使用先前建立的密钥对该数据进行签名,然后将该数据发送回服务器。我需要签名的格式大致相当于PGP clear sign或Distached signature格式。仅使用官方Java API(如no bouncy castle)可以做到这一点吗?

oracle.security.crypto.cert.PKCS7

Java.security.Signature有什么问题?它没有将签名封装为标准的可导出格式,可以跨应用程序和语言障碍共享。这就是PKCS7的设计目的。我认为你的评论在你的问题中会是有价值的信息。你的回答违反了问题最后一句中给出的规则。“大致相当于PGP清晰签名或分离签名格式”