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

php - 如何使用公钥/私钥加密 php 中的数据?

我有一小段数据(小于 1kb),我想让用户代理在从我的站点发送它们时将它们传递给其他站点。为了让其他站点验证我是创建字符串的人,我想到了两个选项。

  1. 服务器回复我确认(如 paypal、openid 等)
  2. 我使用公钥/私钥来证明我发送了消息(如 PGP、DKIM 等)

我不想设置 HMAC,因为这意味着我必须为每个站点使用自定义密钥,这会很痛苦。

在这两个选择中,#2 似乎可以节省带宽,这使它看起来是一个更好的选择。

那么如何使用 PHP 设置公钥/私钥加密,有什么缺点吗?

0 投票
2 回答
1409 浏览

objective-c - 在 Objective-C 中使用 NaCl/libsodium 加密

我试图找出在 Objective-C 中使用 NaCl 库的正确方法是什么。密钥生成似乎很容易:

那很简单。但是有了这个crypto_box(c,m,mlen,n,pk,sk)功能,我就混淆了填充,ZEROBYTES以及如何管理对象所有权。如何为crypto_box(c,m,mlen,n,pk,sk)和朋友构建一个简单的 Wrapper?

0 投票
1 回答
1495 浏览

ios - 如何在 iOS 中使用 lib-sodium 加密字符串

我已经QR使用 lib 扫描了一个代码图像ZXingWidget,收到了一个字符串作为响应。lib-sodium现在我想在 iOS中加密那个字符串。

任何关于如何使用lib-sodium库在 iOS 中进行字符串加密的建议......在此先感谢......

0 投票
0 回答
500 浏览

iphone - 使用 libsodium 加密,需要使用 crypto_box_keypair() 生成公钥和私钥

需要一些帮助。我正在研究加密,我需要将crypto_box_keypair()十六进制字符串实现或解码为字节数组,以便您必须获得公钥和私钥。我还需要要求crypto_box(m,n,pk,sk)加密。

我从未从事过加密工作,我对如何实施感到震惊。如果您有任何示例代码,请发送。这将非常有帮助。我只需要在 ios 中加密和解密字符串。

提前感谢。

0 投票
1 回答
5554 浏览

java - 意外的 e_machine: 3 in KaliumJNI for Android

我正在尝试在 Android 上使用libsodium加密库(NaCl 的便携式版本(nacl.cr.yp.to)),但我无法弄清楚如何正确编译/使用Kalium-JNI语言绑定。

到目前为止,我已按照 libsodium 网站上的说明成功编译了 libsodium。另外,我使用了 3 天前添加的新的 android-arm 编译脚本。作为测试,我还编译了 android-x86 版本来比较生成的库文件的文件大小。它们不同,所以这似乎有效。作为下一步,我使用新生成的 android-arm libsodium 文件安装了 KaliumJNI。这里没有问题。

在我的小 android-maven 测试应用程序中,它基本上是一个“Hello World”原型,我只是想生成一个新的密钥对:

IntelliJ 成功编译了我的小程序,但是当我尝试在我的模拟器(或我的 Nexus S)上运行它时,它崩溃了。首先它崩溃了,因为它无法找到 kaliumjni 库,所以我将 libtestjni.so(它是由 KaliumJNI 生成的 .so 库)添加到我的项目属性中,从而解决了这个问题。我收到的下一条错误消息告诉我 libtestjni.so 不是 32 位(我运行的是 64 位 Ubuntu 12.04LTS)。我不明白为什么它必须是 32 位,但无论如何我设法设置了一个 32 位 Ubuntu 12.04LTS VM 并再次编译了 android-arm libsodium 和 KaliumJNI 以生成一个 32 位 libtestjni.so 文件。但是当我在我的原始应用程序(在我的 64 位机器上)中使用这个 32 位文件时,我收到以下错误:

我花了几个小时才达到这一点,但现在我不知道我应该从这里去哪里。似乎 e_machine: 3 代表某种架构问题,但我不知道我哪里出错了。该应用程序针对 Android 4.0 (Android API 14) 进行编译,模拟器配置为使用 arm 和相同的 API 14(Nexus 手机运行带有 Android 4.3.1 的 CM)。如前所述,libsodium 也是为 arm 编译的。

更多信息:

pom.xml

氯化钠.java

(这个类被调用来加载testjni(KaliumJNI))

我很感激任何提示我指向正确的方向。

请注意,我还有一个小的 JAVA 桌面应用程序,它使用 libsodium + Kalium(不是 KaliumJNI)并且运行没有任何问题。

0 投票
2 回答
3263 浏览

encryption - 使用 libsodium 进行加密

我一直在努力使用 libsodium 中的 crypto_secretbox_easy() 加密/解密一些数据。我似乎找不到任何关于使用的好的文档。

我想从用户那里得到一个密码,用它来制作一个密钥,然后用它加密/解密数据。

我在下面发布的玩具代码的问题是 crypto_secretbox_open_easy() 从 verify_16.c 中返回 -1。有谁知道我在哪里可以找到显示如何使用此界面或可能出现什么问题的来源?谢谢!

0 投票
2 回答
840 浏览

c - 使用 libsodium 进行加密

我一直在努力使用 libsodium 中的 crypto_secretbox_easy() 加密/解密一些数据。我似乎找不到任何关于使用的好的文档。

我想从用户那里得到一个密码,用它来制作一个密钥,然后用它加密/解密数据。

我在下面发布的玩具代码的问题是 crypto_secretbox_open_easy() 从 verify_16.c 中返回 -1。有谁知道我在哪里可以找到显示如何使用此界面或可能出现什么问题的来源?谢谢!

0 投票
1 回答
3153 浏览

php - 与 libsodium 进行安全密钥交换

我想做一个测试应用程序,它使用libsodium从客户端到服务器进行通信。

许多语言有许多端口: C#PHP、...

并且总是有“鲍勃”和“爱丽丝”的例子。这很好,但他们从未展示如何以安全的方式通过网络交换公钥。

那么推荐的方法是如何交换“alice/client”和“bob/server”的公钥。

他们总是使用相同的文件或相同的机器来生成密钥对。

这是libsodium-php扩展的摘录:

0 投票
0 回答
8369 浏览

zeromq - ZeroMQ 没有发现 libsodium

我希望在 ZeroMQ ØMQ 中使用 CurveCP 功能。我使用 CentOS 作为底层操作系统。

下载并运行 ZeroMQ 后,我已经完成了通常的./configure,makesudo make install. 然后运行make check返回了许多测试通过,但声明:

所以sudo yum install libsodiumsudo ldconfig,然后make clean,以及上面的命令。但是下次我运行 时make check,会跳过 CURVE 测试,再次报告没有 libsodium。

查看测试,我看到test_security_curve.cpp#ifndef HAVE_LIBSODIUM,并且预处理器定义似乎正在推动“无 libsodium”跳过。

./configure --with-libsodium根据此页面报告libsodium is not installed

./configure --with-libsodium=/home/eng/work/libsodium-master --with-libsodium-include-dir=/home/eng/work/libsodium-master/src/libsodium/include --with-libsodium-lib-dir=/usr/lib64报告libsodium is not installed

解决方案

为了让它工作,通过 YUM 安装 libsodium 并没有提供一个可用于 zeromq 构建的 libsodium 版本。它需要真正构建的 libsodium,而这又需要最近的 autoconf 副本。

0 投票
1 回答
1586 浏览

thrift - Apache Thrift 加密 - Java

我计划将 Thrift 用于客户端/服务器 RPC,并且我想使用 libsodium 加密交换的数据。我知道有 TLS 内置,但 TLSTransportParameters 似乎没有提供太多配置可能性。

有人知道我在哪些时候必须延长节俭才能实现这一点?