【问题标题】:Decrypt image using AES Algorithm with password使用带密码的 AES 算法解密图像
【发布时间】:2011-10-08 05:32:33
【问题描述】:

大家好,谁能告诉我如何使用 AES 算法解密带有密码的图像。图像已在 iphone 中使用密码加密。

提前致谢

编辑 #1 问题是用户将从 iPhone 应用程序中选择一些图像并使用用户输入的密码对其进行加密并将其发布到服务器。现在我们需要做的是从服务器下载图像并使用相同的密码解密并将图像显示给用户。在 iphone 中,他们给出了长度为 4 的密码,例如“test”。希望你能更好地理解我在做什么。

在 iPhone 中,他们有 followed this link

【问题讨论】:

  • 这是一道编程题吗?你在寻找类似加密库的东西吗?
  • 问题不清楚。更加详细一些。这里有太多的未知数。提供更多信息 如果是来自 iPhone,您是否检查过图像格式在 Android 中是否没有兼容性问题?
  • @Andrew Anderson 嗨,伙计,我已经更新了我的问题。希望您现在能理解...我没有兼容性问题...问题我不知道如何使用给定的密码解密图像。
  • 你知道它最初被加密的确切过程吗?加密有很多参数。如果你错过了一个,输出将无法使用。
  • @glorifiedHacker:肯定是编程问题。刚刚添加了 iPhone 标签。希望一些 iphoners 知道基于 iPhone 的 AES 库的答案...

标签: iphone android aes encryption


【解决方案1】:

嗯,首先您需要知道从密码派生的密钥。他们使用了 PBKDF#2 吗?几轮? AES 没有“密码”,它有密钥。

其次,图片是在哪种模式下加密的?欧洲央行?加拿大广播公司?点击率? GCM?

如果你有byte[]的数据、SecretKey的密钥和byte[]的IV,并且使用了CBC模式,你可以使用以下方式进行解密:

cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv)); 
ciphertext = cipher.doFinal(imageByte);

由于这里有很多未知数,我无法提供确切的解决方案。

【讨论】:

  • 我已经发布了他们在 iPhone 中实施加密的链接。
【解决方案2】:

要解密图像,您需要知道 2 件事:

  1. 密钥生成过程详细信息。通常它是根据提供的密码使用hash calculation 完成的。有时可以使用所谓的password salting 来加强密码。如果是这样,您需要知道密码盐。基本上:

    key=hash(密码+盐)

  2. 即使你知道key也必须知道ciphering mode(那些神秘的ECB/CBC等等)。基本上操作模式意味着加密块如何相互链接。

如果没有这 2 个参数,解密将毫无用处 - 所以 “使用源卢克!”

【讨论】:

  • 你有没有机会知道 iPhone 股票加密的密钥生成细节和加密模式?它用盐吗?
  • @mikato 当然他们应该使用盐腌。我不认为史蒂夫在招聘笨蛋……我不知道 iPhone 密钥生成细节的细节,请尝试询问 these guys
  • 哈,是的,我已经在阅读有关 Elcomsoft 的资料了。我希望这些细节现在是外部知识。如果我认为有机会的话,我可能正在努力从加密手机的图像中提取已删除的短信,所以这可能是 Elcomsoft 软件所做的一些事情以及其他一些事情。我不认为这会很容易。
  • 我认为他们在 ios 3 之前也没有这些,所以也许史蒂夫在招聘方面做得更好;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 2011-10-12
  • 2014-11-21
  • 2018-05-06
  • 2014-09-14
  • 1970-01-01
  • 2016-07-12
相关资源
最近更新 更多