我使用java.security.Signature来签署数据。签名执行以下过程:
我想存储数据的哈希值,以便稍后重新签名内容而无需完整数据。我现在的问题是:
我知道this thread描述了Java如何签名,但接口没有提供所请求的功能。
修改1
当前使用的签名算法是带有DSA的SHA1。这是代码:
Signature signature = Signature.getInstance("SHA1withDSA");
signature.initSign(privateKey);
ByteBuffer[] byteBuffers = buf.nioBuffers();
int len = byteBuffers.length;
for (int i = 0; i < len; i++) {
ByteBuffer buffer = byteBuffers[i];
signature.update(buffer);
}
byte[] signatureData = signature.sign();
修改2
在用户mkl的帮助下,我能够构建一个实际使用RSA运行的演示代码。步骤是
可以找到代码here。即使它正在工作,我仍然想知道是否有更优雅的方法来做到这一点?