【问题标题】:Objective - C - Equivalent Cryptography of Java algorithmObjective - C - Java 算法的等效密码学
【发布时间】: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


【解决方案1】:

如果您正在寻找跨语言加密器/解密器,我建议您看这里:RNCryptor

如果您正在研究 Apple 提供的加密技术,那么 link 将是一个不错的起点。

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

最后,这个previous question 可以帮助你。

【讨论】:

  • 谢谢@Turtle。我会看看这些页面并在之后发布结果...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
  • 2019-09-07
相关资源
最近更新 更多