问题标签 [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 投票
0 回答
673 浏览

android - 使用 libsodium 在 Android 上处理密钥派生的正确方法是什么?

我正在尝试在 Android 上使用 libsodium 进行对称加密。为了在 android 上获取 libsodium,我正在使用这个绑定库。

我正在努力寻找从(低熵/用户选择的)密码中派生密钥的正确方法。网上有很多关于 PBKDF2 和 SCrypt 算法的参考资料。特别是 SCrypt 看起来像是作为 libsodium 的一部分包含在内,但我不知道如何通过上面的绑定来使用它。我应该为密钥派生函数添加一个单独的库吗?这会起作用,但如果没有必要,我不希望为此添加另一个库。我应该使用 java 的 SecretKeyFactory 吗?

如果有人之前使用 libsodium 在 android 上实现了对称加密并且可以提供示例或指导,我们将不胜感激。谢谢。

0 投票
1 回答
492 浏览

libsodium - libsodium 有错误代码吗?

或任何其他机制来获取功能失败的原因?

我正在打电话crypto_pwhash,它没有明显的原因失败(返回-1),实际上完全相同的代码在旧版本的 libsodium 上运行良好。有一个错误代码将使调试更容易。

0 投票
1 回答
108 浏览

digital-signature - BitTorrent 测试用例因 libsodium 而失败

我正在尝试按照BitTorrent BEP 44 test #1 中的描述运行测试向量,但我没有创建与他们相同的签名:

305ac8aeb6c9c151fa120f120ea2cfb923564e11552d06a5d856091e5e853cff 1260d3f39e4999684aa92eb73ffd136e6f4f3ecbfda0ce53a1608ecd7ae21f01

相反,我使用 libsodium 创建的签名是:

c44ad65291c2b1087218db8a43e3fa7b73cfa01b585b0ff9e6b962ed50e701a1 6065277417ff5bbae43d9b76e52129d27bf2e33e8b043ea67ace7ff91dae4d02

使用此代码:

似乎我错过了一些愚蠢的东西,但我就是看不到它。

0 投票
1 回答
668 浏览

java - libsodium + windows 10 x64 + Eclipse

我正在努力让 libsodium 的 Kalium 包装器在 Eclipse 中工作。我的第一次尝试是不使用 Maven。所以我下载了 Kalium 的 Jar,下载了 libsodium 的 x64 DLL,将其添加到 win32 文件夹中。

结果?不走运:我从 libsodium 包装器中得到一个错误,它无法加载库。

所以我决定走官方的路……我不想这样做,因为它需要我没有使用的 maven。所以我安装了maven。将钾添加到依赖项;为 Eclipse 安装了 Maven 插件。

现在,当我尝试编译加载 Kalium lib 的项目时。我得到非常相似的错误:

是否有适用于 Windows 的 libsodium-dev?

0 投票
0 回答
704 浏览

c++ - mingw-w64 无法链接到 libsodium

我正在构建一个 c++ 项目,我需要支持多个平台。因为我主要使用 Linux,所以我也在尝试在 Linux 上为 Windows 编译项目。

我正在使用mingw编译器。它类似于 g++,但我在将libsodum库链接到我的项目时遇到问题。

我正在使用 cmake,但这是一个简单的代码补丁,它仍然会重现问题。

测试.cpp

在同一个文件夹中,我复制了libsodium-win64文件夹的内容,其中是libsodium. 现在看起来像这样:

我现在正在尝试用mingw.

这给我一个错误:

我也尝试libsodium用 mingw 编译我自己的二进制文件,但这并没有解决问题。

0 投票
3 回答
213 浏览

perl - 从 Perl 匿名数组访问元素时遇到问题

我正在尝试crypto_box_keypair使用 Crypt::Sodium

我的理解(由 确认Data::Dumper)是Crypt::Sodium返回一个匿名数组:

但我似乎无法访问各个元素。

返回 1,尽管Data::Dumper?清楚地显示了两个元素

undef

0 投票
0 回答
546 浏览

python - 如何在 PYTHON 中使用 curve25519 libsodium 生成密钥对?

有没有办法使用 libsodium 生成公钥和私钥对?我尝试使用函数 crypto_box_keypair,但我不断收到错误消息。我一直在网上搜索信息,但是,我找到的信息要么不在 python 中,要么不起作用。如果有人帮助我,我将不胜感激。

这是我到目前为止在 python 中所做的代码。

我得到的错误是:

0 投票
2 回答
3099 浏览

php - 如何使用 libsodium php 用盐加密/解密密码

我想要得到的是

  • 用 libsodium 加密密码 + 盐
  • 将其存储到数据库
  • 阅读并解密(取回普通密码以进行身份​​验证)

我得到了我想用来加密/解密密码的盐列表。当我加密密码时,我得到一个哈希,这样一个似乎可以工作,但在解密时,我总是得到 false 作为返回值。

我是否使用错误的方法使用 libsodium 进行加密/解密,或者我是否完全朝着错误的方向行驶?

我的加密/解密来源:

我很感激任何帮助!

问候多姆

0 投票
2 回答
378 浏览

c - 反正有没有使用 sodium.h 生成字符空间(32) 到 ~(126) ?或其他方式来生成安全字符串?

我正在创建一个 C 程序来生成密码。

rand()srand((unsigned int)**main + (unsigned int)&argc + (unsigned int)time(NULL))在 C 中,即使使用在此处找到的,也会继续生成一些相同的字符串集,但比使用更好srand(time(NULL))

我找到了这个答案,我终于知道如何将 libsodium 链接到我的项目。

之后,我意识到我只能为 设置上限randombytes_uniform(),下限始终为0

并使用randombytes_random()给我所有不能在密码中使用的字符。

谁能知道如何使用钠或任何安全的方式生成字符空间(32)到字符〜(126)?

这是原始代码:

0 投票
1 回答
432 浏览

android - 在 Android Studio 中包含依赖项会产生 UnsatisfiedLinkError

我对 Android 编程相当陌生,并且正在尝试将 libsodium-jni 库用于一些基本的加密任务。在 Android Studio 中,我将 libsodium-jni-aar 添加为库依赖项,我可以看到这通过添加以下内容修改了我的 build.gradle 文件:

这个库中的许多函数都可以正常工作,但是当我使用 Sodium.sodium_init() 函数时,我得到了

我猜想这是由于 sodium_init 是一个本机函数,并且由于某种原因,gradle 没有将实现安装到手机(或模拟器)。

任何帮助将不胜感激。