问题标签 [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.
php - 在 WAMP 上使用 Libsodium 和 PHP
我在libsodium
本地服务器(WAMP64)上安装时遇到了很大的麻烦。
我使用了本指南和许多其他指南,但仍然没有运气。
我成功安装了PEAR
,但我不能用它来安装libsodium
. 有人可以逐步发布一个小指南来帮助我吗?
我会很感激安装Halite
,需要的帮助libsodium
,因为也许这将是我的下一步。
谢谢大家。
public-key-encryption - 为什么发件人私钥用于加密?
我正在查看 libsodium-examples of public-key-cryptography ,似乎在加密明文时,除了接收者的公钥之外,还使用了发送者的私钥。
从相关示例中提取:
crypto_box_easy() 函数使用接收者的公钥 pk、发送者的密钥 sk 和随机数 n 加密长度为 mlen 字节的消息 m。
这有什么意义?我的理解是发件人的私钥仅在签署消息时使用?
serialization - 将氧化钠的 PublicKey 序列化为 JSON
我尝试将氧化钠的PublicKey
结构(libsodium 的 Rust 绑定)序列化为一个文件(例如 JSON,但二进制也可以)。
这是我的代码:
我收到以下错误消息:
所以编译器告诉我PublicKey
应该实现 serde::Serialize 特征。但它确实serde::Serialize
按照此处所述实现:https ://dnaq.github.io/sodiumoxide/sodiumoxide/crypto/sign/ed25519/struct.PublicKey.html
那么,问题是什么?
编辑:
货物.toml:
c# - 在生产 Azure Service Fabric 群集中找不到 libsodium-64.dll
在 Azure Service Fabric Reliable Service 中使用 libsodium-net 以获得所有安全优势,在我的本地开发集群上一切正常(尽管我确实必须设置 libsodium-64.dll 以复制到输出目录)。
不幸的是,当部署到 Azure 中的真实集群时,它会引发以下错误:
Unable to load DLL 'libsodium-64.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
我已经通过远程桌面检查到其中一个节点,并且 DLL 被复制到与服务相同的目录中,就像它在我的开发集群中一样。无法弄清楚为什么在生产中找不到它。
我已尝试按照此答案中的建议设置 PATH 环境变量,并验证它确实已设置 - 不幸的是,这无济于事。
为了让 ASF 获取 DLL,我需要做些什么特别的事情吗?
编辑:还尝试在所有节点上将DLL添加到System32,也没有解决。
ios - 仅集成期间的 Xcode Bot 位码错误
ld: '/Library/Developer/XcodeServer/Integrations/Caches/5c17d3e903f4d302cf453 40fb301f30f/Source/ocular/Pods/Sodium/Sodium/libsodium-ios.a(libsodium_la-crypto_box.o)' 不包含位码。您必须在启用位码的情况下重建它(Xcode 设置 ENABLE_BITCODE),从供应商处获取更新的库,或禁用此目标的位码。对于架构 armv7
我/usr/local/bin/pod install
在集成(触发器)之前运行。
我能够在模拟器和真实设备中构建和运行应用程序。但是,我与机器人的集成失败并出现上述错误消息。我Sodium
通过 cocoapods 安装。
我尝试设置ENBALE_BITCODE = NO
项目/目标/Pods
服务器:5.1.7 Xcode:7.3.1
任何帮助表示赞赏。
php - 安装了 Libsodium 和 pecl-libsodium 但 PHP 抛出错误
我需要在 Ubuntu (14.04) 服务器上的 PHP(5.5.9) 应用程序中加密密码和其他一些数据。我阅读了有关 libsodium 的信息,发现它非常适合应用程序的要求。我遵循了可用于 libsoidum的唯一教程中给出的所有说明。
- sudo add-apt-repository ppa:chris-lea/libsodium - 完成,没有错误
- sudo apt-get update && sudo apt-get install libsodium-dev - 完成,没有错误
- pecl install libsodium - 完成,没有错误
- 将 extension=libsodium.so 添加到 php.ini 并重新启动 apache。
当我检查 phpinfo() 页面时,我可以看到 libsodium 的条目,如下所示:
已启用 libsodium 支持
libsodium 编译版本 1.0.6
libsodium 头文件版本 1.0.3
libsodium 库版本 1.0.3
但是,当我尝试运行上述教程中给出的基本示例时:
我收到一条错误消息,提示“调用未定义的函数 Sodium\library_version_major()”。
这真的让我感到困惑,因为扩展名被 phpinfo() 页面正确识别。
任何人都可以帮助我了解我是否遗漏了什么或做错了我无法将 libsodium 与 php 一起使用。任何帮助是极大的赞赏。
谢谢你。
xcode - ./configure 未被识别为 cmdlet 的名称
我正在尝试在 github shell 中使用这个 github 代码,但是消息
./configure 未被识别为 cmdlet 的名称
如何解决这个问题?
php - 在 PHP 中为 Argon2 选择 MemoryLimit
Libsodium 建议在使用 Argon2 散列函数时选择“<em>保证可用”的最大内存量。我的问题是我们如何发现这一点?据我了解,由于我的网站是交互式的(即使用 MySQL、多个请求页面等),我可能会遇到各种情况,例如:
- 让多个用户大致同时访问同一个哈希函数页面,使系统过载并耗尽物理内存,
- 让用户访问其他页面,一旦只有一个用户尝试使用该功能,其内存使用量就会产生类似的“崩溃”,
- 两者的结合
显然,这种情况发生的概率相当低,更不用说有这么多用户同时使用服务器了。但是,如果我想要我能负担得起的最强哈希,我至少需要大致了解这一点。我总共只有 1GB 的 RAM。
是否可以在我的 PHP 脚本中进行任何内存检查以确保服务器不会崩溃?我没有什么可以做的吗?
(见:https ://download.libsodium.org/libsodium/content/password_hashing/the_argon2i_function.html )
c - 如何将钠链接到我的 C 程序
我需要在我的 C 代码中实现 libsodium 库中的一些函数,这些代码是在 Visual Studio 中编译的。我下载了我需要的所有 libsodium 预编译二进制文件,并将它们放在正确的文件夹中。为了链接到 libsodium,我尝试按照https://download.libsodium.org/libsodium/content/usage/此处的说明进行操作,但编译器无法识别来自 libsodium 库的命令。我没有在 C 中链接库的经验。我应该在编译器选项或链接器选项中添加一些东西吗?我如何在视觉工作室中做到这一点?另外,在上面的链接中,提到我必须添加两个额外的定义 SODIUM_STATIC = 1 和 SODIUM_EXPORT = (这里,他们没有提到数字)。我应该在哪里定义这些值?
java - Java JNI 在 Linux 上加载 libc.so 时出现问题,尝试加载 ASCII /usr/lib64/libc.so 并发现它确实不是 ELF 文件
我正在开发一些使用 libsodium 进行加密的软件……<a href="https://github.com/joshjdevl/libsodium-jni" rel="nofollow">在 Java 中。它在 macOS 10.11/10.12 和 Ubuntu Server 16.04 上都运行良好。当我尝试在带有 Amazon Linux 的 Amazon EC2 实例上运行我的软件时(uname -a
返回Linux ip-$IPADDR 4.4.19-29.55.amzn1.x86_64 #1 SMP Mon Aug 29 23:29:40 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
),我收到此错误:
原来libc.so
是这台机器上的一个 ASCII 文件:
我尝试使用参数运行我的代码,-Djava.library.path=/lib64/:…:$NORMALLIBRARYPATH
希望让加载程序尝试/lib64/libc.so.6
,但它没有工作。
导致 libsodiumjni.so 被加载的代码部分是:
在我的项目中,目录结构包括 JNA 的 Native 类可以理解的路径中的库文件:
在云雀中,我删除了 ASCII libc.so 并将其替换为 /lib64/libc-2.17.so 的符号链接,并得到了一个稍微不同的错误:
我真的不确定该怎么做。我真的很想继续使用 libsodium(通过libsodium-jni),但我在这里碰壁了。可能必须切换到不同的库,因为多平台兼容性对于这个项目很重要。