我正在评估TurboPower LockBox数字签名库。我创建了一个1024位的RSA密钥,并试图用它来签署一个260字节的文本。在文本中更改一个或两个字符后,签名仍然有效。这可以吗?或者这可能是这个库的问题。 改变即使是一个字符也有至关重要的作用。我是否需要创建一个更大的密钥?Lockbox数字签名组件问题
UPDATE
为了测试我使用其附带的演示应用程序库。我生成了1024个RSA密钥对,然后尝试了数字签名功能。首先,我尝试了一个真正的260位文本文件,发现我可以更改其中的一些字符,并且签名仍然有效。然后我缩小一点到followinf字符串:
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAA 8
而且它仍然工作时,我改变'8'字符。我大概可以缩小它的范围。
执行验证的代码是:
Signatory1: TSignatory;
....
var
DocumentStream, SignatureStream: TStream;
....
DocumentStream := TFileStream.Create(edtRSADocumentFile.Text, fmOpenread);
try
SignatureStream := TFileStream.Create(edtRSASignatureFile.Text, fmOpenread);
try
Res := Signatory1.Verify(DocumentStream, SignatureStream)
finally
SignatureStream.Free
end;
finally
DocumentStream.Free;
end;
您正在使用哪种版本的LockBox? “3.0”是一个单人重写,它看起来并没有使用很多原始代码,它的质量还有待评估。或者你使用2.07(TurboPower发布的最新版本)? – 2010-11-19 22:25:22
我使用的是最新版本(2010年10月22日)3.1.0.0版。 – Max 2010-11-19 22:38:52
@ldsandon。我现在已经尝试了旧的2003版本,它运行良好。所以看起来新的有一个错误。你能发布你的答案,以便我可以接受它吗? – Max 2010-11-20 13:47:21