相关疑难解决方法(0)

RSA:在iOS中加密,用Java解密

我有一个从Java服务器发送的公钥.在解码和删除ASN.1标头之前,base64编码的字符串匹配.我将公钥存储在钥匙串中SecItemAdd.

所以我正在尝试使用公钥加密数据,并使用Java中的私钥对其进行解密.我正在SecKeyEncryptiOS端和CipherJava端使用.

我正在加密的是加密我的实际数据的对称AES密钥,因此密钥长度为16个字节.当简单地对base64进行编码时,一切正常,所以我知道这个RSA加密有问题.

这是我的iOS调用示例:

OSStatus sanityCheck = SecKeyEncrypt(publicKey,
        kSecPaddingPKCS1,
        (const uint8_t *) [incomingData bytes],
        keyBufferSize,
        cipherBuffer,
        &cipherBufferSize
);
Run Code Online (Sandbox Code Playgroud)

这是我的Java调用的一个例子:

public static byte[] decryptMessage (byte[] message, PrivateKey privateKey, String algorithm) {
    if (message == null || privateKey == null) {
        return null;
    }
    Cipher cipher = createCipher(Cipher.DECRYPT_MODE, privateKey, algorithm, false);
    if (cipher == null) {
        return null;
    }

    try {
        return cipher.doFinal(message);
    }
    catch (IllegalBlockSizeException e) {
        e.printStackTrace();  //To change body of catch statement use …
Run Code Online (Sandbox Code Playgroud)

java rsa ios7

17
推荐指数
2
解决办法
7998
查看次数

标签 统计

ios7 ×1

java ×1

rsa ×1