问题标签 [commoncrypto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
19142 浏览

ios - 在 Swift 中使用 CCCrypt (CommonCrypt) 的问题

我正在将一个有效的 Objective-C 类别 (NSData+AESCrypt.m) 移植到 Swift,我发现使用指针时存在问题。Swift 中加密部分的代码可以正确编译,但会生成运行时 EXEC_BAD_ACCES 错误。

到目前为止我的代码是(我试图尽可能地剖析代码):

encryptedData 对象显示以下信息:

但是 encryptedString 显示0x0000000000在调试器中,并尝试println()生成 EXEC_BAD_ACCESS 错误

知道缺少什么吗?

rgds....

0 投票
3 回答
4369 浏览

objective-c - 在 Swift 中使用 CommonCrypto 解密的问题

我正在为 and 进行crypt/decrypt 工作,Swift-onlycrypt部分的工作基于@Zaph 在链接问题中提供的答案:Issue using CCCrypt (CommonCrypt) in SwiftExtensionStringNSData

crypt 输出是使用 Objective-C 中良好的旧 NSData+AESCrypt.m 类别测试的

我一直在处理解密部分的问题:代码编译并运行良好,但结果不是最初加密的预期文本。

如您所见,String.encryptStringWithKey()调用NSData.encryptDataWithKey(). 所以扩展适用于两种类型StringNSData

任何帮助将不胜感激

0 投票
2 回答
3379 浏览

c# - 使用由 iOs CCCrypt 函数使用 AES 生成的 C# 解密 base64 字符串

有人可以帮助将下面 iOS 代码生成的 base64 字符串解密为 C# 等效项。

我试图在 c# 中以“晚上 8 点在秘密地点与我会面”结束。

iOS 生成以下加密:qd+SGaij5KSBScuLs3TpJS/3Dew8fHTudcs/5MG7Q1kqcrZzZycMgTcQuEEEED5f

此 iOS 代码成功地按照 XCode 6 中的要求加密和解密数据。

预先感谢您的帮助和支持。

达伦

0 投票
1 回答
1924 浏览

ios - 使用 RSA 私钥签署 NSData

我正面临一个问题,从我的角度来看,Apples 文档中没有很多描述。

我需要使用后台提供的 RSA 私钥对 NSData 进行签名。私钥以字符串的形式接收。

如何做到这一点?我不想创建自己的密钥对,我只想使用单个 PRIVATE 密钥来签署 NSData。

我找到了几个使用 OPENSSL 的解决方案,但它们都不起作用,而且我无法找到任何适合我的本地 CommonCrypto 库问题的解决方案。

事实上,这是我需要复制的一段 Android 代码:

- 这个返回私钥,它是从存储在应用程序数据库中的字符串生成的

- 这以 base64 字符串的形式返回有符号字节数组

如何在 iOS 中实现这一点?我花了很多时间在网上搜索并尝试了几种方法,但都没有成功。

我会非常感谢任何代码片段,因为像“CommonCrypto 应该这样做”这样的提示对我不起作用。

非常感谢

0 投票
4 回答
16021 浏览

objective-c - AES CBC 中的 CCCrypt 解密即使没有 IV 也可以工作

我有一个令人困惑的问题,其中解密使用 CCCrypt 的 AES-CBC 模式和随机 16 字节 IV 加密的文件会产生完全相同的输出,无论我传入用于加密的相同正确 IV 还是根本不传递。

我的期望:使用 NULL IV 进行解密不应导致正确的解密。我观察到:使用 NULL IV 会产生与用于加密的 IV 相同的结果。

为了完整起见,下面是重要的代码片段,iv作为 16 字节的安全随机 NSData 传入。

我在这里不明白什么?CCCrypt 是否以某种方式自行从加密数据中找出 IV?我在文档中找不到任何相关内容。

编辑:

为了详细说明这一点,无论我使用哪种 IV 进行解密(尝试了几个不同的随机 IV),我总是会逐字节地得到相同的结果。即使我只解密了加密文件中间某处的部分加密文件。

这可能与我正在加密/解密的实际数据(mp3 文件)有关吗?

当我只是将一些实际加密文件的任意块传递给解密器时,它是否不应该要求该块数据(我没有明确提供作为 IV)之前的块来进行正确的解密?我个人能想到的唯一解释是 CCCrypt 总是使用前 16 字节作为 IV,并且不解密这些,而是​​将它们丢弃在输出中。

编辑2:

加密/解密的输出,显示输入和输出数据的前两个块,密钥和 iv:

编辑 3:

的代码-dataForHex:是:

0 投票
1 回答
1656 浏览

objective-c - 使用 CCCrypt kCCOptionPKCS7Padding-Objective C 确定密钥是否不正确

我正在对存储在我的应用程序中的数据进行加密。我在加密和解密数据方面已经走得很远了,我的问题是,当使用错误的密钥时,我似乎无法强制出现明显的解密错误。我的解密功能:

}

这取自http://robnapier.net/aes-commoncrypto以供参考。

根据 CCCrypt 文档,如果我的数据没有正确解密,我应该会收到一个 kCCDecodeError,所以我假设解密操作是成功的,只是由于错误的密钥而给出了垃圾数据。

那么,确定是否使用正确的密钥来解密数据的最佳实践是什么?

0 投票
2 回答
1875 浏览

ios - How to use CCHmac in iOS?

I want to generate SHA512 with salt in iOS. I found following snippet to achieve this but I found that CCHmac() function is for mac.

If I use CC_SHA512() function, then how will I use the salt string?

0 投票
1 回答
1050 浏览

android - iOS:AES 加密

我在 iOS 中得到了错误的加密,android 运行良好,这里是两个代码。

这是Android AES加密代码。

这是我用于 iOS 加密的。

http://pastie.org/426530#7,9-12,15-17,21-26

您能否检查一下两种加密方式有何不同。

0 投票
2 回答
1070 浏览

c++ - 使用 Common Crypto 和 Crypto++ 使用 AES 加密时的不同结果

当使用 Apple 的 Common Crypto 和 Crypto++ 使用相同的密钥加密相同的文件(二进制数据)时,我会得到不同的结果。我使用的算法是 AES。

这是 Objective C 中使用 Common Crypto 的代码:

这是使用 Crypto++ 的 C++ 代码

我需要让他们两个产生相同的结果。有什么我忽略的吗?

0 投票
2 回答
1952 浏览

c# - 没有等同于 CommonCrypto 的 CRC64 实现?

我正在将一些代码从 OSX 上的 C 移植到使用 CommonCrypto 和kCN_CRC_64_ECMA_182CRC64 实现的 C#。例如,使用 CommonCrypto,CRC 将通过以下方式计算:

CNCRC(kCN_CRC_64_ECMA_182, bytes, bytesLen, &crcResult)

这会输出正确的值。当使用 C# 库 HashLib(或任何其他代码)时,输出完全不同,例如,上面使用 HashLib 的等价物将是:

var checksum = HashFactory.Checksum.CreateCRC64(0x42F0E1EBA9EA3693UL); // ECMA 182 var result = checksum.ComputeBytes(bytes);

有任何想法吗?就输出而言,C# 中是否有与 Apple 的 CommonCrypto 等效的实现?