问题标签 [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.
android - 使用 libsodium 在 Android 上处理密钥派生的正确方法是什么?
我正在尝试在 Android 上使用 libsodium 进行对称加密。为了在 android 上获取 libsodium,我正在使用这个绑定库。
我正在努力寻找从(低熵/用户选择的)密码中派生密钥的正确方法。网上有很多关于 PBKDF2 和 SCrypt 算法的参考资料。特别是 SCrypt 看起来像是作为 libsodium 的一部分包含在内,但我不知道如何通过上面的绑定来使用它。我应该为密钥派生函数添加一个单独的库吗?这会起作用,但如果没有必要,我不希望为此添加另一个库。我应该使用 java 的 SecretKeyFactory 吗?
如果有人之前使用 libsodium 在 android 上实现了对称加密并且可以提供示例或指导,我们将不胜感激。谢谢。
libsodium - libsodium 有错误代码吗?
或任何其他机制来获取功能失败的原因?
我正在打电话crypto_pwhash
,它没有明显的原因失败(返回-1),实际上完全相同的代码在旧版本的 libsodium 上运行良好。有一个错误代码将使调试更容易。
digital-signature - BitTorrent 测试用例因 libsodium 而失败
我正在尝试按照BitTorrent BEP 44 test #1 中的描述运行测试向量,但我没有创建与他们相同的签名:
305ac8aeb6c9c151fa120f120ea2cfb923564e11552d06a5d856091e5e853cff 1260d3f39e4999684aa92eb73ffd136e6f4f3ecbfda0ce53a1608ecd7ae21f01
相反,我使用 libsodium 创建的签名是:
c44ad65291c2b1087218db8a43e3fa7b73cfa01b585b0ff9e6b962ed50e701a1 6065277417ff5bbae43d9b76e52129d27bf2e33e8b043ea67ace7ff91dae4d02
使用此代码:
似乎我错过了一些愚蠢的东西,但我就是看不到它。
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?
c++ - mingw-w64 无法链接到 libsodium
我正在构建一个 c++ 项目,我需要支持多个平台。因为我主要使用 Linux,所以我也在尝试在 Linux 上为 Windows 编译项目。
我正在使用mingw
编译器。它类似于 g++,但我在将libsodum
库链接到我的项目时遇到问题。
我正在使用 cmake,但这是一个简单的代码补丁,它仍然会重现问题。
测试.cpp
在同一个文件夹中,我复制了libsodium-win64
文件夹的内容,其中是libsodium
. 现在看起来像这样:
我现在正在尝试用mingw
.
这给我一个错误:
我也尝试libsodium
用 mingw 编译我自己的二进制文件,但这并没有解决问题。
perl - 从 Perl 匿名数组访问元素时遇到问题
我正在尝试crypto_box_keypair
使用
Crypt::Sodium
:
我的理解(由 确认Data::Dumper
)是Crypt::Sodium
返回一个匿名数组:
但我似乎无法访问各个元素。
返回 1,尽管Data::Dumper
?清楚地显示了两个元素
和
是undef
。
python - 如何在 PYTHON 中使用 curve25519 libsodium 生成密钥对?
有没有办法使用 libsodium 生成公钥和私钥对?我尝试使用函数 crypto_box_keypair,但我不断收到错误消息。我一直在网上搜索信息,但是,我找到的信息要么不在 python 中,要么不起作用。如果有人帮助我,我将不胜感激。
这是我到目前为止在 python 中所做的代码。
我得到的错误是:
php - 如何使用 libsodium php 用盐加密/解密密码
我想要得到的是
- 用 libsodium 加密密码 + 盐
- 将其存储到数据库
- 阅读并解密(取回普通密码以进行身份验证)
我得到了我想用来加密/解密密码的盐列表。当我加密密码时,我得到一个哈希,这样一个似乎可以工作,但在解密时,我总是得到 false 作为返回值。
我是否使用错误的方法使用 libsodium 进行加密/解密,或者我是否完全朝着错误的方向行驶?
我的加密/解密来源:
我很感激任何帮助!
问候多姆
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)?
这是原始代码:
android - 在 Android Studio 中包含依赖项会产生 UnsatisfiedLinkError
我对 Android 编程相当陌生,并且正在尝试将 libsodium-jni 库用于一些基本的加密任务。在 Android Studio 中,我将 libsodium-jni-aar 添加为库依赖项,我可以看到这通过添加以下内容修改了我的 build.gradle 文件:
这个库中的许多函数都可以正常工作,但是当我使用 Sodium.sodium_init() 函数时,我得到了
我猜想这是由于 sodium_init 是一个本机函数,并且由于某种原因,gradle 没有将实现安装到手机(或模拟器)。
任何帮助将不胜感激。