问题标签 [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 - 安装 libsodium 到 wampserver 错误功能不存在
我想使用libsodium
加密和保护我在服务器-客户端之间传输的数据。我正在使用 MySQL 作为数据库服务器的 PHP-PDO 应用程序,目前它处于离线模式。
- 我拿了lipsodium.dll 并将其添加到同一目录
php.exe
; - 我把
php_libsodium.dll
它添加到:
C:\wamp64\bin\php\php7.0.10\ext
然后我添加了这个脚本来测试它是否真的存在:
我收到一条错误消息:
致命错误:调用未定义函数 Sodium\library_version_major()
然后在网上搜索了几遍后,我将其更改为:
仍然得到错误:
致命错误:调用未定义的函数 sodium_library_version_major()
node.js - 如何为 React Native 打补丁/填充 crypto.getRandomValues
我正在将一些为 NodeJS 创建的包移植到 React Native,使用ReactNativify将 Node API 对象依赖项重写为它们的 browserify 等价物。
其中之一是crypto
。在transformer.js
(或.babelrc
)我有:
在 ReactNativifyglobal.js
中有这段代码(我排除了,因为它不适合生产):
.
我的第一个问题:如何
getRandomValues
正确修补生产?
还有第二个选项,那就是使用react-native-crypto
(的克隆crypto-browserify
)
理想情况下,我应该能够做到这一点transformer.js
:
但是react-native-crypto
使用rn-nodeify而不是 ReactNativify,它会生成一个shim.js
要导入index.android.js
/index.ios.js
的代码,类似于以下代码:
我不知道在使用 ReactNativify 时是否需要所有这些 shim 代码,并且找不到好的来源,所以......
我的第二个问题:如何以
react-native-crypto
“正确的 ReactNativify 方式”使用?
我在 ReactNativify 和 react-native-crypto repo 中创建了 github 问题:
版本:
c - 无法让 mingw windows 工作的 libsodium 预建库
我想要的是,根据文档,只需使用以下代码:
在文档的 windows安装部分,它说明了 MinGW32 的预编译 windows 版本。当我在 MinGW 中使用代码块时,我认为这些应该可以工作。
我下载了libsodium-1.0.13-mingw.tar.gz
文件并解压了它。我拿走了libsodium-win32
文件夹的所有内容并将它们放在 MinGW 根目录中C:\Program Files (x86)\CodeBlocks\MinGW
(文件夹include
,bin
并lib
匹配,让我相信这是正确的方法)。
然后,我使用上面的代码片段在代码块中创建一个新项目,并使用 -std=c99 进行编译(尽管 -std=gnu99 没有区别)并收到以下警告:
这向我表明它由于某种原因找不到或实际上不包含<sodium.h>
. 奇怪的是,如果我只是接受sodium_init()
(不检查语句中的输出if
),它会给我一个警告说明:
这向我表明它确实被解析了,因为它注意到缺乏检查结果。检查构建日志,我发现在引发错误时会mingw32-gcc.exe
引发-Wunused-result
警告mingw32-g++
。
有人可以帮我弄清楚如何让钠在我的设置中起作用吗?
php-7 - 带有 PHP 7.0 的 AWS EC2 标准 AWS AMI - 安装 libsodium 配方
(为清楚起见进行了编辑-在接受的答案中滚动)
Libsodium 已经为 PHP 7 做好了准备。在此过程中,命名空间被删除,并添加了用于方法的前缀 sodium_ 和用于常量的 SODIUM_ 前缀。版本方法也被删除。
此 github 页面记录了所有新函数和常量,并且该项目提供与 \Sodium 命名空间的向后兼容性:https ://github.com/Firehed/sodium/blob/master/src/we_cant_have_nice_things.php
配方:在 PHP 7 和 AWS AMI 上安装 Libsodium
命令行测试以验证是否安装了钠
测试 php 函数以验证密码哈希的调用模式
感谢@GracefulRestart 的帮助。
php - PHP paragonie/halite - 缺少钠\常量?
我想实现简单的加密。
我正在使用最新的 PHP 7.1.8,由于 mcrypt 已被弃用,我了解了 libsodium。安装它,这就是我的 PHP 信息的样子:
一切似乎都井然有序。
然后我安装了 paragonie/halite v3.2.0,并尝试了来自 github 页面的简单示例:
运行此返回:
Fatal error: Uncaught Error: Undefined constant 'Sodium\CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE' in /app/vendor/paragonie/halite/src/KeyFactory.php on line 274
在查看了一些代码之后,我可以看到代码确实使用了这些常量。
我已经看到在\Sodium
命名空间中使用了旧版本的 PHP 扩展,并且由于它被确认成为 PHP7.2 核心扩展,因此对函数进行了重构,以用作sodium_*
.
也许我遗漏了一些东西,但我的问题是,谁能告诉我我遗漏这些常量的原因是什么?
谢谢!
php - 在 PHP 7.2 中使用 libsodium
在 PHP 7.2 中,libsodium 应该是 PHP 核心的一部分。是否需要文件中的任何条目php.ini
才能使其工作,或者它应该开箱即用?
我正在尝试使用PHP 7.2.0beta2和类似sodium_version_string()
或sodium_compare
未知的功能。我正在使用 PHP 泊坞窗 ( 7.2-rc-fpm )
以防万一 - 我没有安装任何 PECL 扩展,因为据我了解它不应该是必要的。
rust - 为什么 Rust/氧化钠 PublicKeys 在序列化时会以长度为前缀?
氧化钠定义PublicKey
为:
因此,PublicKey
定义为 32 字节的简单包装器。
当我定义自己的 32 字节 ( MyPubKey
) 包装器时,它的 bincode 序列化为 32 字节。
当我对 serialise 进行 bincode 时PublicKey
,它是 40 个字节 - 32 个字节以u64
包含长度的 little-endian 为前缀。
结果:
PublicKey
用氧化钠的new_type!
宏创建的类型和类型之间有什么区别MyPublicKey
?
如何从 a 中获取 32 个字节,PublicKey
以便有效地序列化它们?
php - 使用私钥快速钠解密
我在客户端使用 Swift Sodium,因为我的服务器在通过 API 与我共享数据之前使用 libsodium 加密数据。
现在我有一个现有的私钥和一个字符串格式的公钥。我现在想在 iOS 上使用 Swift 解密加密数据。
如何使用我拥有的公钥和私钥生成 Sodium Key Pair?
另外理想情况下,我应该只使用私钥来解密数据。那么我如何只使用私钥作为字符串来做到这一点。
我的解密代码如下所示 -
在上面的代码中,我解密的字符串总是空的。
服务器正在使用以下功能加密数据 -
在服务器解密逻辑
java - 如何修复 java 项目中的 libsodium 错误
当我从 libsodium 创建一个 SigningKey 的新实例时出现此异常,如何解决此问题?