PKCS5Padding vs PKCS7Padding Compatability Android iOS

时间:2014-07-22 22:14:30

标签: android ios encryption rncryptor jncryptor

我正在创建一个Android和iOS版本的应用程序,并且有一段需要加密的数据。我分别使用适用于Android和iOS的JNCryptor / RNCryptor库,因为它们声称兼容。

然而,当我使用Android加密时,我的加密密钥长度为114个字符,而iOS使用长度为112个字符。我注意到两个库源代码之间的唯一区别是Android使用PKCS5Padding,而iOS使用PKCS7Padding。考虑到两个库显然应该兼容,这是否重要?如果是这样,我该如何更改它以使两个加密的字符串长度相等?

编辑: Android代码:

    JNCryptor cryptor = new AES256JNCryptor();
    byte[] plaintext = data.getBytes();
    String password = key;
    String a;
    try {
        byte[] ciphertext = cryptor.encryptData(plaintext, password.toCharArray());

        a = Base64.encodeToString(ciphertext, Base64.DEFAULT);

       return a;


    } catch (CryptorException e) {
        // Something went wrong
        e.printStackTrace();

        return "0";
    }

iOS代码:

NSData *data = [@"mystring" dataUsingEncoding:NSUTF8StringEncoding];



NSError *error;

NSData *encryptedData = [RNEncryptor encryptData:data

                                    withSettings:kRNCryptorAES256Settings

                                        password:DEV_AES_KEY

                                           error:&error];



NSString *myotherstring = [encryptedData base64EncodedStringWithOptions:0];

或者你的意思是比较两个图书馆? 这些可以在这里找到: https://github.com/RNCryptor/JNCryptor

0 个答案:

没有答案