我正在評估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