相关疑难解决方法(0)

如何在iOS上进行base64编码?

我想做base64编码和解码,但我找不到iPhone的任何支持SDK.如何在base64有或没有库的情况下进行编码和解码?

base64 objective-c ios

229
推荐指数
9
解决办法
13万
查看次数

来自Swift中服务器的公钥字符串的Seckey

我想使用RSA加密数据,我试图在我的代码中生成密钥并且它正在工作,但我真正需要的是从服务器获取公钥作为字符串,然后将其用作Seckey,以便我可以使用它来加密使用RSA的数据,我试过这段代码:

//KeyString is the string of the key from server
let KeyData = (keyString as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData!


    var cert : Unmanaged<SecCertificateRef>!;
    var  policy : Unmanaged<SecPolicy>!;
    cert = SecCertificateCreateWithData(kCFAllocatorDefault, KeyData);
    policy = SecPolicyCreateBasicX509();
    var status : OSStatus = noErr
    var trust: SecTrust?
    var certArray : [Unmanaged<SecCertificateRef>!] = [cert];
    var certArrayPointer = UnsafeMutablePointer<UnsafePointer<Void>>(certArray)
    status = SecTrustCreateWithCertificates(cert, policy, trust);
    let publicKey: SecKeyRef = SecTrustCopyPublicKey(trust!).takeUnretainedValue()
Run Code Online (Sandbox Code Playgroud)

我无法运行此代码,因为SecTrustCreateWithCertificates方法期望证书为anyObject!,我不知道如何解决这个问题,如果解决这个问题,我会得到SecKey.

在objective-c中这个答案得到了上面的代码

所以,如果任何人可以帮助我找到正确的代码来解决这个问题,我将非常感谢:)

encryption-asymmetric public-key-encryption ios swift seckeyref

5
推荐指数
1
解决办法
1万
查看次数

SecCertificateCreateWithData始终返回null

我目前在以下职位上工作。这是代码:

    SecCertificateRef   certs    = NULL;
    SecPolicyRef        policy  = NULL;

    NSString *publicKeyString = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCeJ8N8fuGShAJnniDg4yuRrxrG61ZF2T24eXSEH87jCJmLbc+MV70AgP/LC8btzSU4FFP56lBmDcmW+Prupf5gO1RXhjPIlET73t5Ny1I3ze+xaShAA9qB0c9dNb26NxVd95wCHNmQhon9qBFmTVZb0CdgscxYcDuLOGskDnATrwIDAQAB";
    NSData *publicKeyStringData = [[NSData alloc] initWithBase64EncodedString:publicKeyString options:0];


    certs = SecCertificateCreateWithData(kCFAllocatorDefault, (__bridge CFDataRef) publicKeyStringData);
Run Code Online (Sandbox Code Playgroud)

根据帖子,如果certs变量为NULL,则数据格式不正确。我检查了上面的公钥,它确实是base64,所以我看不出为什么certs会是NULL?

security objective-c ios

3
推荐指数
2
解决办法
3305
查看次数