问题标签 [libsodium]

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 投票
2 回答
207 浏览

php - 在 Azure Web 应用程序上安装 Libsodium

我一直在尝试在 Azure 中的 PHP Web App 上安装 Libsodium,但我遇到了一些权限问题。
我一直在点击此链接尝试安装它:https : //paragonie.com/book/pecl-libsodium/read/00-intro.md#installing-libsodium 但它需要我放置 libsodium.dll 文件进入与 php.exe 文件相同的目录 - 我显然没有正确的写入权限,这可能是命令行中出现此错误的原因:

错误:DSP libsodium.dsp 不存在。

有任何想法吗?

提前致谢

0 投票
1 回答
1132 浏览

java - 在 Java 项目中使用 Libsodium/Kalium

我正在尝试使用 Libsodium 库使用 Kalium 作为 Java 变形器来加密密码。我正在尝试安装它,但我遇到了一些问题。我已将 Kalium 依赖项添加到我的 pom.xml 中,并将 libsoidum 放置在我的 javapath 中,如此处所述。现在我实际上想使用该库对我的密码进行哈希处理,然后开始将它们保存在我的数据库中。(我知道 oAuth 是首选,但这不是软件中的一个选项。)问题是我不知道如何实际使用包装器。我找不到任何文档或示例。有没有可以帮助我的来源?

0 投票
1 回答
39 浏览

node.js - 我对实例方法有什么误解?

所以我有一个使用这种方法的模式:

它是这样称呼的:

这导致Error: argument hash must be a buffer

我能够验证 user[0] 是一个有效的用户,显然是因为它成功地调用了该comparePassword方法,并且是 libsodium 函数失败了。

进一步的测试表明这this.password是未定义的。其实是在方法this中未定义。comparePassword我的理解是,它this指的是调用方法的对象,在这种情况下,user[0].

那么引用调用它自己的实例方法的对象的正确方法是什么?

0 投票
0 回答
189 浏览

c# - 如何在 Windows Server 2012 上包含 libsodium.dll

我正在编写 WCF IIS 托管服务并尝试使用 libsodium。它在我运行 Windows 7 的 PC 上运行良好,但它对无法在 Windows Server 2012 上找到 libsodium.dll 感到生气。即使我将 DLL 粘贴到 Windows 目录中,它也会继续生气。

有任何想法吗?

0 投票
1 回答
79 浏览

python - 在电子邮件确认中存储用于生成令牌的密钥的位置

我在 ruby​​ 中有这个源代码:

红宝石代码

我正在尝试建立一个大致相似的课程。我有这个端点:

发送带有链接的电子邮件,其中包含使用此类生成的令牌:

我还有另一个端点,它假设解密先前生成的令牌:

我真的不知道在我的烧瓶环境中将我的密钥存储在哪里,也不知道密钥存储在 ruby​​ 代码中的哪里。

您能告诉我存储密钥的最佳和安全方式是什么吗?

编辑:

我有以下流程:

  1. 用户注册时填写:first_name, email on /register_account
  2. 我使用对称密钥加密 JSON: {"first_name": first_name, "email": email} (它给了我一个 URL_SAFE 令牌
  3. 我通过电子邮件向用户发送链接 /register/
  4. 当用户点击电子邮件时,我们检索 URL 中的令牌,使用之前相同的对称密钥对其进行解密,并预先填写名字和电子邮件字段,然后用户可以填写密码等字段。
  5. 我们存储用户

我的问题是如何存储加密/解密过程中使用的对称密钥?

0 投票
1 回答
592 浏览

node.js - 我无法解决的 NPM/节点错误

我正在尝试使用 npm 5、ubuntu 16.04 和 node.js 8 为机器人(在我拥有的另一个 vps 上工作)安装我的软件包。问题似乎与钠/libsodium 相关。这是错误:

http://i.imgur.com/P05doix.png

我试过删除所有节点模块并重新安装,似乎没有任何效果。有任何想法吗?

0 投票
1 回答
436 浏览

java - 如何让 Libsodium 在 Alpine Java 上运行

我正在尝试在 Alpine Java docker 映像上运行 Libsodium。

但是当我运行容器时,Java 崩溃了。

运行 libsodium 需要哪些依赖项?

0 投票
2 回答
1195 浏览

php - 如何为多个用户存储加密文档

在线系统(前端用 PHP 编写,但不太相关)需要将文本存储在加密的 MySQL 数据库中,这样本地系统管理员就无法查看数据,也因此在数据库被盗的情况下也无法查看数据。系统上有多个用户必须有权访问数据,他们通过标准设置登录/验证,即同一数据库中的用户名和哈希密码。

由于存储的数据需要由系统解密以显示给经过身份验证的用户,但本地系统管理员必须无法解密相同的数据,显而易见的方法是拥有一个用于加密/解密存储的密钥使用对称密码的数据。问题(实际上是我要征求意见的问题)是如何/在哪里存储此密钥?

经过身份验证的用户不应直接访问密钥,因此需要以某种方式将其存储在系统中并由软件按需解密存储的文件,但本地系统管理员必须无法学习此密钥,否则他们可以用它来解密存储的数据。

因此,一种方法是将密钥加密存储在数据库中,但是为了让系统在每个用户的基础上解密和使用密钥,它必须针对经过身份验证的用户所独有的东西进行加密,例如他们的密码。好的,到目前为止一切顺利,但有一个问题......

如果需要更改密钥怎么办?更改密钥的人要么必须知道每个人的密码,以便他们可以针对每个用户帐户加密新密钥(不切实际),要么他们必须将新密钥提供给每个用户并要求他们重新输入(不是选项)。

另外,从安全的角度来看,让这个密钥在数据库中有效地存储 n 次(其中 n 是用户数),并用不同的密钥(用户密码)加密,这是个好主意吗?即,这是否会通过向潜在黑客提供相同加密数据的多个示例来更多地暴露密钥?

有没有更好的办法?

0 投票
1 回答
217 浏览

libsodium - 尝试在 ubuntu 16.04 上安装 libsodium-php 时未声明的标识符

我在 Ubuntu 16.04 上安装 libsodium 的 php 包装器时遇到了一些问题。我安装了 libsodium,sudo apt-get install libsodium但运行时sudo pecl install libsodium出现未声明的标识符错误。

0 投票
3 回答
3875 浏览

php - libsodium“调用未定义的函数”错误

我已经在 ubuntu 16.04 上安装了 libsodium 和 libsodium-php,但是当我运行时:

我收到一条错误消息:

根据 phpinfo() 启用 Sodium,编译版本为 2.0.1,库版本为 1.0.13。我究竟做错了什么?