【发布时间】:2021-07-31 05:10:18
【问题描述】:
我正在构建我的第一个 react-native 应用程序。我看过一些关于如何使用 aes-crypto 将二进制数据解密和加密为 base64 的视频,但仍然无法理解我们为什么这样做。那么在我们将二进制数据放回数据库之前,如果我们对其进行加密,当我们将其取出时,我们对其进行解密,这会影响性能还是有什么原因呢?
我知道这是一个新手问题,但我真的很想了解我们这样做的原因,所以如果有人能给我任何指导,我将不胜感激。
干杯
【问题讨论】:
-
编码或解码是为了传输、存储或查看目的。一个例子:加密后你有很多不可见的“字节”——想想 x00(十六进制)。 Base64 支持二进制数据和字符串版本之间的无损转换。
-
好吧,我现在明白了。这有帮助!传奇!
-
@minhpham:我觉得当前的答案错过了你问题的 aes 部分。你能澄清一下你是使用普通的base64还是用aes加密? base64和aes这两者有很大的不同。
-
@WiktorZychla 我之所以提出这个问题是因为我看了以下视频:youtube.com/watch?v=vj723NlrIQc。他说通过使用本机加密/解密(在这种情况下,是他提到的库:github.com/craftzdog/react-native-aes-gcm-crypto),它使他的应用程序更快。我假设正如 Michael 和 jfriend 解释的那样,也许他使用的数据库不接受二进制,所以他必须使用 based64 编码,并且由于 react-native 使用 javascript 运行时,加密/解密过程需要更长的时间来处理。因此,使用本机加密/解密提高性能
-
@minhpham:我也不明白这一点。 JavaScript 有内置缓冲区到 base 64 编码,应该比 aes 快得多。只要你不需要加密,我相信你不需要 aes 和这个特殊的包。坚持使用 JavaScript 转换。我的印象是这是您最关心的问题,为什么要使用 aes 包。
标签: node.js react-native encryption react-redux