【问题标题】:Send Public key(generated as seckeyref in iPhone) to server(in Java)将公钥(在 iPhone 中作为 seckeyref 生成)发送到服务器(在 Java 中)
【发布时间】:2023-04-09 07:06:02
【问题描述】:

我需要将 SecKeyGeneratePair 生成的公钥作为 SecKeyRef 对象发送。 现在,要发送这个,我需要这个 KeyRef 对象为字符串格式。

如何将 SecKeyRef 对象转换为 nsstring 对象?

【问题讨论】:

    标签: iphone security


    【解决方案1】:
    // you have SecKeyRef keyref from somewhere 
    size_t keySize = SecKeyGetBlockSize(keyref);
    NSData* keyData = [NSData dataWithBytes:keyref length:keySize];
    

    然后使用此NSData category 将具有 base64 的 NSData 对象编码为 NSString。

    NSString *keyStringB64 = [keyData base64EncodedString];
    

    【讨论】:

    • 这真的有效吗?有人试过吗?您是否通过为字节传递SecKeyRef 来获得正确的数据?我很难相信这一点。
    • 不,它不适用于公钥,您需要解析密钥模块以获取真正的公钥作为字符串。苹果在这里有一个例子:developer.apple.com/library/ios/samplecode/CryptoExercise/…
    【解决方案2】:

    [清理旧问题]

    Saving SecKeyRef device generated public/private key pair on disk

    展示了如何创建一个 NSData 对象。由于我不是 iOS 开发人员,因此我会将转换为字符串(例如使用 base 64 编码)作为练习。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多