我想实现共享的秘密加密从黑莓到PHP


I want to implement shared secret encryption from BlackBerry to PHP

在黑莓应用程序中,https握手速度慢得令人难以忍受,所以我打算尝试使用他们的本地加密功能,通过http将私人数据发送到我的服务器。我可以使用一次性https传输发送一个唯一的共享密钥到设备,所以我认为这个方案是相对安全的,除非有人访问设备,但我不担心。

我在以下黑莓文章中找到了encrypt()函数:http://supportforums.blackberry.com/t5/Java-Development/Use-Basic-Encryption/ta-p/445092

我一直在摆弄它,它似乎产生了加密输出。

问题是,我如何在PHP服务器端使用mcrypt_decrypt()解密这个?

我绝不是加密专家,所有的选项都让我头晕目眩。密钥大小、分组大小、分组密码模式、IV等

我在这里的评论中看到了如何编写AES/CBC/pkcs5填充加密和解密与初始化向量参数黑莓也许我应该在黑莓端使用cbcencryptoengine。encrypt()示例没有指定分组密码模式,所以添加这个似乎是有意义的,因为mcrypt_decrypt()似乎需要一个。

那么静脉注射必须和加密数据一起发送吗?这似乎是必须的,显然我不在我的元素。

我在PHP中修改这段代码:

mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $sSecretKey, $sEncrypted, MCRYPT_MODE_ECB);

但老实说,我不知道该使用什么常数,也不知道是否需要IV。很自然,它给了我垃圾。

谁能帮我把这些碎片拼起来?

所以这里有一个官方答案,事实证明我在问题中列出的PHP代码实际上可以完美地解密黑莓知识库文章中encrypt()函数的输出。

我将考虑添加CBC以提高安全性,但在我的情况下可能不是必需的,因为我发送的数据非常可变。