美好的一天。WinAPI - > CryptoAPI - > RSA,與私人加密,與公衆解密
我需要教Windows CryptoAPI使用私鑰(不公開)部分密鑰對消息進行加密,並用public解密。這對於給用戶提供信息是必要的,他們可以閱讀,但無法更改。
怎麼現在的工作:
我得到的情況下
CryptAcquireContext(@Prov, PAnsiChar(containerName), nil, PROV_RSA_FULL, 0)
生成密鑰對
CryptGenKey(Prov, CALG_RSA_KEYX, CRYPT_EXPORTABLE, @key)
加密(而問題是這裏的 「鑰匙」 - 一個密鑰對,並且該函數使用其公共部分);
CryptEncrypt(key, 0, true, 0, @res[1], @strLen, buffSize)
解密(這裏同樣的問題,它使用的密鑰的私有部分)
CryptDecrypt(key, 0, true, 0, @res[1], @buffSize)
感謝您的關注/幫助。
更新
是的,我可以用一個數字簽名等metods ...
的問題是,我需要加密一個數據庫字段,並確保沒有人,但我可以改變它。只有在我的程序的幫助下才能閱讀這個字段(直到有人反編譯並獲得公鑰)。這可以通過對稱密鑰和數字簽名來完成,但是接下來我需要創建另一個字段並存儲另一個密鑰等等......
我確實希望我們能夠以某種方式教WIN API執行我想要的操作。我知道我可以用RSA來實現,我希望WinAPI支持這個功能。
tnx爲好的答案,請看看更新 – TheHorse
@TheHorse,我更新了我的答案與一些更多的信息。 –