2011-07-15 15 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