问题标签 [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 - 如何使用公钥/私钥加密 php 中的数据?
我有一小段数据(小于 1kb),我想让用户代理在从我的站点发送它们时将它们传递给其他站点。为了让其他站点验证我是创建字符串的人,我想到了两个选项。
- 服务器回复我确认(如 paypal、openid 等)
- 我使用公钥/私钥来证明我发送了消息(如 PGP、DKIM 等)
我不想设置 HMAC,因为这意味着我必须为每个站点使用自定义密钥,这会很痛苦。
在这两个选择中,#2 似乎可以节省带宽,这使它看起来是一个更好的选择。
那么如何使用 PHP 设置公钥/私钥加密,有什么缺点吗?
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?
ios - 如何在 iOS 中使用 lib-sodium 加密字符串
我已经QR
使用 lib 扫描了一个代码图像ZXingWidget
,收到了一个字符串作为响应。lib-sodium
现在我想在 iOS中加密那个字符串。
任何关于如何使用lib-sodium
库在 iOS 中进行字符串加密的建议......在此先感谢......
iphone - 使用 libsodium 加密,需要使用 crypto_box_keypair() 生成公钥和私钥
需要一些帮助。我正在研究加密,我需要将crypto_box_keypair()
十六进制字符串实现或解码为字节数组,以便您必须获得公钥和私钥。我还需要要求crypto_box(m,n,pk,sk)
加密。
我从未从事过加密工作,我对如何实施感到震惊。如果您有任何示例代码,请发送。这将非常有帮助。我只需要在 ios 中加密和解密字符串。
提前感谢。
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)并且运行没有任何问题。
encryption - 使用 libsodium 进行加密
我一直在努力使用 libsodium 中的 crypto_secretbox_easy() 加密/解密一些数据。我似乎找不到任何关于使用的好的文档。
我想从用户那里得到一个密码,用它来制作一个密钥,然后用它加密/解密数据。
我在下面发布的玩具代码的问题是 crypto_secretbox_open_easy() 从 verify_16.c 中返回 -1。有谁知道我在哪里可以找到显示如何使用此界面或可能出现什么问题的来源?谢谢!
c - 使用 libsodium 进行加密
我一直在努力使用 libsodium 中的 crypto_secretbox_easy() 加密/解密一些数据。我似乎找不到任何关于使用的好的文档。
我想从用户那里得到一个密码,用它来制作一个密钥,然后用它加密/解密数据。
我在下面发布的玩具代码的问题是 crypto_secretbox_open_easy() 从 verify_16.c 中返回 -1。有谁知道我在哪里可以找到显示如何使用此界面或可能出现什么问题的来源?谢谢!
zeromq - ZeroMQ 没有发现 libsodium
我希望在 ZeroMQ ØMQ 中使用 CurveCP 功能。我使用 CentOS 作为底层操作系统。
下载并运行 ZeroMQ 后,我已经完成了通常的./configure
,make
和sudo make install
. 然后运行make check
返回了许多测试通过,但声明:
所以sudo yum install libsodium
和sudo 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 副本。
thrift - Apache Thrift 加密 - Java
我计划将 Thrift 用于客户端/服务器 RPC,并且我想使用 libsodium 加密交换的数据。我知道有 TLS 内置,但 TLSTransportParameters 似乎没有提供太多配置可能性。
有人知道我在哪些时候必须延长节俭才能实现这一点?