问题标签 [rncryptor]
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.
objective-c - 初学者的AES加密/解密
我正在尝试在 Objective-C 中将 NSString 加密为 NSString 和 NSData ,所以我开始搜索。
我从这里开始,但不幸的是,这超出了我的想象。
然后我发现自己在这篇文章中并且觉得它很容易理解,所以我继续尝试找出实现。在查看了实现之后,我看到了帖子中的第二个答案,看到他有更多适应性强的实现,这让我明白了他的要点。根据 gist 自述文件,他"took down this Gist due to concerns about the security of the encryption/decryption"
. 这使我相信从上面实现的安全性也存在安全缺陷。
然而,从那个要点来看,他提到了另一种我可以用于加密的替代方案。查看代码后,我注意到它生成 NSData 与"a header, encryption salt, HMAC salt, IV, ciphertext, and HMAC"
. 我知道如何处理该问题以再次使用同一个库进行解码,但是鉴于我不太清楚要发送给他的内容,我该如何将其传递给服务器人员?
在这一切的根源,我在我的头上。鉴于我上面所说的并且知道我没有时间为此进行大量学习,除非绝对必要,否则我应该如何最好地处理这个编码/解码过程,给定一个私钥将它运送到不是我设计的服务器的最终目标?(这对于一个句子来说是怎样的!)
ios - 在 iOS 上使用 RNCryptor 加密/解密大文件时的内存问题
我正在尝试使用 RNCryptor 在 iOS 上加密和解密大文件(600+MB)。在github 上,我找到了有关如何在流上异步使用库的示例代码。此代码类似于 Rob Napier 关于同一主题的问题的答案。
然而,虽然我认为我正确地实现了代码,但该应用程序使用了高达 1.5 GB 的内存(在 iPad 6.1 模拟器中)。我认为代码应该阻止应用程序在内存中保留多个数据块?那么出了什么问题呢?
在我的控制器中,我创建了一个“CryptController”,我用加密/解密请求发送消息。
在 CryptController 我有:
当我使用分配工具进行分析时,我看到持续增长的分配类别是malloc 32.50 KB
、和。尤其是增长很大,超过 1 GB。负责的调用者是
负责的调用者是
。malloc 4.00 KB
NSConcreteData
NSSubrangeData
malloc 32.50 KB
[NSConcreteData initWithBytes:length:copy:freeWhenDone:bytesAreVM:]
NSConcreteData
-[NSData(NSData) copyWithZone:]
当我使用泄漏仪器进行分析时,没有发现泄漏。
我是 Objective-C 的新手,据我了解,新的 ARC 应该处理内存的分配和释放。在搜索任何与内存相关的内容时,我发现的所有信息都是假设您不使用 ARC(或者在撰写本文时它不存在)。我确定使用的是 ARC,因为当我尝试手动释放内存时会出现编译错误。
如果有人可以帮助我,将不胜感激!如果需要更多信息,我很乐意提供:) 另外,我是 StackOverflow 的新手,所以如果我忽略了我应该做的任何事情,请告诉我!
php - 为 RNCryptor 使用 PHP 解密器的 HMAC 不匹配错误
我有一个加密的 NSData 变量,它已经在 Objective-C 中进行了 Base64 编码,并且正在通过 POST 传递给 PHP 脚本。我正在尝试解密此字符串,但不断收到 HMAC 不匹配错误。这是我的PHP代码:
这是我的 iOS 代码:
知道有什么问题吗?
php - RNCryptor iOS/PHP 和特殊字符
我正在使用 RNCryptor 在 iOS 中加密消息,然后在 PHP 中对其进行解密。但是,特殊字符会从解密的字符串中消失。
我如何在 iOS 中加密
{
}
我如何在 PHP 中解密
问题是,如果我在 iOS 中加密“Agresión”,PHP 只返回“Agresin”。为什么它不解密 "ó" ?我认为dataUsingEncoding:NSUTF8StringEncoding会保留特殊字符...我应该使用另一种类型的编码吗?
php - 使用 PHP 解密 RNCryptor 1.x 的输出
我一直在我的 iOS 应用程序中使用RNCryptor。由于应用程序的一些问题,我需要解密一些运行 PHP 5.4 的数据服务器端。RNCryptor 包包含 PHP 代码,但它仅适用于 RNCryptor 的 2.x 分支。我的数据是用 1.x 分支加密的。不幸的是,RNCryptor 2.x 不向后兼容 1.x。
据我所知,这些分支之间的唯一区别是 1.x 使用 AES CTR 模式来加密文本,而 2.x 现在使用 AES CBC。但我不知道如何调整 PHP 代码以使用 CTR。我也不确定 1.x 和 2.x 之间是否还有其他变化。我发现关于 1.x 的有用信息非常少。
这是用于从 2.x 行解密数据的 RNCryptor 代码:
我真的需要一个像上面这样的函数,它可以处理由 RNCryptor 的 1.x 行加密的数据。除此之外,有人知道我如何自己调整上述功能吗?谢谢!
javascript - RNCryptor IOS + Javascript加密/解密AES 256
我是加密新手,我正在尝试通过 websockets 将一些对称加密使用 AES256 从移动应用程序传输到网页。
I 使用 RNCryptor 默认设置加密数据
IOS代码
这是通过 websocket 输出的输出 AgEBnXPPvAkJb7YVapwCVNd5SQw4JwqU7BfLsEXNZyKy9SazfJT8w16Y/hYY7aKxuz3Kuy2tAXXX/cHCc3PMhvG+fzSfrslRVMKvD6L+oWvXLg==
JAVASCRIPT 代码 - 我收到消息并尝试解析并显示它
由于某种原因,代码在生成密钥时卡住了(可能 10k 次迭代对于 CryptoJS 来说太多了???这就是 IOS 上使用的迭代)
我已经尝试了很多不同的东西,输出是垃圾,我实际上并没有解密消息。任何帮助将不胜感激。如果您要推荐 SJCL,请提供一些代码。RNCryptor 使用自己的消息格式。我使用它是因为它提供了随机静脉注射。如果您也知道任何图书馆,请推荐一个不同的图书馆。
谢谢阅读。
ios - RNDecryptor addData 方法中的混淆
HERE的 ObjectiveC 中的 RNDecryptor 类具有以块为单位解密文件的功能,如下所示:
}
而RNDecryptor的addData方法如下:
我在这里不明白这条线实际上试图做什么,这对每一块加密流都被调用:
假设我的块大小为 1000 字节,HMACLength 为 32。
如果我尝试解密大于块大小的文件,比如说 5000 字节,那么这个 addData 方法将运行第一次迭代,因为
NSData *data = [self.inData _RNConsumeToIndex:1000 - 32];
这是在使用标头从索引 0 到(1000-32)的加密字节之后,但哈希写在加密流的末尾,最后几个字节,而不是每个块。并且,在下一次迭代中,输入流将读取接下来的 1000 个字节,从第一次迭代块中修剪的 32 个字节会发生什么?
可能我很困惑,因为此代码已被证明,但我想了解这一点。
提前致谢。
iphone - 来自 UITextview iOS 的 RNCryptor 解密消息
我正在使用RNCryptor
加密来自 a 的消息UITextview
并发送此消息。我想做相反的动作。即,当接收者从他的收件箱中复制加密消息并复制到UITextView
iOS 应用程序中,当他按下解密时,他想看到原始消息。我如何解密消息,因为它的形式是NSString
not NSData
?
在 RNCryptor 转换之前,我尝试使用以下代码进行转换。但我失败了。
str
是收件箱中的字符串。
这是加解密代码:
openssl - RNCryptor 使用 OpenSSL 和私钥签名
我在我的 iOS 项目中使用 RNCryptor。
我有一个 openssl .pem(私钥)文件。只有那个文件。
我需要使用该文件来加密/签署一个字符串。
有人知道代码看起来如何做到这一点吗?
php - RNCryptor AES256 匹配 PHP MCRYPT_RIJNDAEL_256
我从我的 iOS 应用程序中调用的 PHP API 需要以某种自定义方式对有效负载进行加密。我在使用 RNCryptor 在 Objective-C 中复制这种方法时遇到了麻烦。
这是用于加密字符串的 PHP 代码:
这就是我试图在 Objective-C 中实现相同加密结果的方式:
但是这两个函数的结果从不匹配。例如,对于相同的单字字符串,PHP 代码返回J39gRcuBEaqMIPP1VlizdA8tRjmyAB6za4zG5wcOB/8=
,而在 Objective-C 中(在base64EncodedStringWithOptions:
生成的 NSData 上运行之后)我得到1FGpZpVm2p4z3BBY6KW2fw==
.
我需要在 RNCryptor 设置中进一步调整以使其正常工作吗?
更新
我直接玩过原生 iOS CommonCrypto 框架,完全没有使用第三方 RNCryptor lib。不过,我一直得到与 RNCryptor 相同的结果。我什至尝试在我的 Objective-C 和 PHP 代码片段中实现 AES128,但即便如此,这两个环境的结果也从未匹配......</p>
更新 2
MD5String
我使用的方法是 NSString 上的一个类别,定义如下: