有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java算法的C等价加密

我已经在这个论坛和网络上读了很多话题,但我找不到满意的答案

即使知道我可以得到一个负面的观点,我也需要提出这个问题

我已经用java编写了几个Web服务。到目前为止,只有安卓应用在使用这些服务。大多数SOAP消息都是加密的,我在两侧(Android和服务器)都使用下面的类来加密和解密:

public class Crypto {

private static final String engine = "AES";
private static final String crypto = "AES/CBC/PKCS5Padding";

static String key = "1234567890987654";
static String _iv = "1234567890987654";

public static byte[] cipher(byte[] data, int mode)
        throws NoSuchAlgorithmException, NoSuchPaddingException,
        InvalidKeyException, IllegalBlockSizeException,
        BadPaddingException, InvalidAlgorithmParameterException 
{
    SecretKeySpec sks = new SecretKeySpec(key.getBytes(), engine);
    IvParameterSpec iv = new IvParameterSpec(_iv.getBytes());
    Cipher c = Cipher.getInstance(crypto);
    c.init(mode, sks, iv);
    return c.doFinal(data);
}

public static byte[] encrypt(byte[] data) throws InvalidKeyException,
        NoSuchAlgorithmException, NoSuchPaddingException,
        IllegalBlockSizeException, BadPaddingException,
        InvalidAlgorithmParameterException {
    return cipher(data, Cipher.ENCRYPT_MODE);
}

public static byte[] decrypt(byte[] data) throws InvalidKeyException,
        NoSuchAlgorithmException, NoSuchPaddingException,
        IllegalBlockSizeException, BadPaddingException,
        InvalidAlgorithmParameterException {
    return cipher(data, Cipher.DECRYPT_MODE);
}
}

所有这些都非常有效。我对这是否是一个好方法不感兴趣,但这对我来说已经足够了

现在的情况是,我必须编写一些iOS应用程序来使用这些Web服务,我必须知道如何使用Objective-C中相同的加密,或者我可以在Android、iOS和服务器端应用的加密

非常感谢您,感谢您给我的任何提示


共 (1) 个答案

  1. # 1 楼答案

    如果你正在寻找一个跨语言的加密机/解密机,我建议你看看这里:RNCryptor

    如果你正在研究苹果提供的加密技术,那么这个link将是一个很好的起点

    如果您正在寻找加密时用作参考点的目标C代码。我建议在github上查看这个AES 128加密对象C项目

    最后,这个previous question可能会对你有所帮助