我在 NodeJS 中有一个数据库和一个 API,我使用 Web 应用程序创建用户,每个用户都可以创建/更新/删除数据。
为了稍微保护一下,我需要加密用户的数据。所以我想要的是每次创建用户时创建一对 SHA256 公钥。
实际上我所做的是将这些密钥存储在数据库中,通过使用全局 SHA256 密钥对加密它们。
因此,简而言之,我有一对全局密钥来加密每个用户的每对特定密钥。
事实是这似乎并不安全,因为最终每个用户都有自己的加密/解密方法存储在数据库中。
例如,我可以有 2 个表:
User table :
id_user | firstname | lastname | encrypted_data
-----------------------------------------------
1 | John | Doe | QMwmuCMmI..
2 | Jane | Doe | QMwmuCMmI..
...
Keys table :
id_user | public | private
------------------------------
1 | MIICIjA.. | MIIJrT..
2 | MIICIjA.. | MIIJrT..
...
Run Code Online (Sandbox Code Playgroud)
所以John Doe他的公钥和私钥的链接很简单。
一个问题是我不能要求用户创建一对私钥/公钥并只向我发送公共密钥,因为所有这些都需要是自动的,用户不必做任何事情。
另一个问题是应用程序应该可以在任何设备上使用,因此私钥不能存储在客户端。
为了加速 android studio,我更改了我在 stackoverflow 中看到的一些设置。我将帮助>编辑自定义虚拟机选项更改为
-Xms1024m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=440m
-XX:+UseCompressedOops
-XX:-HeapDumpOnOutOfMemoryError
-Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
之后,当我启动 android studio 显示此消息时......
我试过的……