【发布时间】:2015-10-28 12:51:38
【问题描述】:
我已经阅读了这个论坛的很多主题和网络上的许多其他主题,但我找不到满意的答案....
即使知道我可以得到否定的观点,我也需要提出这个问题......
我有几个用 java 编写的 web 服务。直到现在,只有 Android 应用程序在使用这些服务。大多数 SOAP 消息都是加密的,我在两侧(Android 和 Server)都使用下面的这个类来加密和解密:
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);
}
}
所有这些都非常有效。我对这是否是一个好方法不感兴趣,但这对我来说已经足够了。
现在的情况是,我必须编写一些将使用这些 web 服务的 iOS 应用程序,并且我必须知道如何在 Objective-C 中使用相同的密码学,或者我可以在 Android、iOS 和服务器上应用的密码学一边。
非常感谢您,并感谢任何提示!
【问题讨论】:
-
CommonCrypto 提供您所需的一切。你试过了吗?
-
是的,我正在尝试。
-
我投票决定将此问题作为离题结束,因为 SO 不是移植服务。
-
我刚刚在stackoverflow.com/questions/44381359/… 中发布了一个可以接受的答案。
标签: java objective-c web-services encryption