2011-07-15 44 views
2

私有密鑰加密數據,我發現樣品中「證書,密鑰和信託服務編程指南」關於使用公鑰加密的數據。但如何使用私鑰進行加密並使用公鑰進行解密?我找不到有關它的任何樣品。在此先感謝與iOS上

+0

看起來是不可能用私人密鑰加密.. SecKeyEncrypt不支持私鑰作爲輸入參數,這就是奇怪。有人可以建議良好的第三方API來驗證該功能嗎? – gN0Me

+0

任何人都可以嗎?.. – gN0Me

+0

發現它!我尋找加密,但實際上它正在簽名。所以我會用這一個:SecKeyRawSign(生成的數字簽名數據塊) OSStatus SecKeyRawSign( SecKeyRef鍵, SecPadding填充, 常量uint8_t * dataToSign, 爲size_t dataToSignLen, uint8_t * SIG, 爲size_t * sigLen ); – gN0Me

回答

4

你爲什麼用私鑰加密?當你用私鑰加密,被認爲是簽署不加密,原因是其不提供保密性。如果您想用私鑰「加密」,請查看數據簽名,這應該允許您使用私鑰對密鑰進行「加密」(讀取「簽名」)並向公衆「解密」(讀取「驗證簽名」)鍵。

+0

是的,我的意思是使用私鑰簽名,但是我找不到使用SecKeyEncrypt的方法。 – gN0Me

+0

爲什麼使用Cocoa API無法使用私鑰簽名?這真的很奇怪...... – gN0Me

+1

有可能,只是不要使用'SecKeyEncrypt',它是**加密**(正如文檔中所解釋的那樣 - 它也表明這個函數需要一個公鑰作爲它的參數),但是使用'SecKeyRawSign',這是**簽名**(並且期望私鑰作爲其參數)。如果您的目標是簽署和不加密,請勿使用函數進行加密;) – AliSoftware