问题标签 [sodium]

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 投票
1 回答
638 浏览

php - 包含敏感数据的 PHP 应用程序 - 加密/解密

我在一个项目中,我们需要构建一个应用程序来将敏感信息存储在 mysql 数据库中。我希望在应用程序中重用一个密钥,因为我们需要加密输入的数据并稍后解密以显示信息。

我正在研究libsodium,但我有一个问题......他们建议不要重复使用密钥和nouce,如果我们遵循这个,我们以后将无法解密!

有人可以指导我如何处理这个问题吗?

我们将建立一种方法来擦除/更改可能违反的密钥!

0 投票
1 回答
691 浏览

php - 调用未定义的函数 sodium_randombytes_buf()

您好,我想在我正在处理的项目中使用 sodium_randombytes_buf 函数。在我的机器(docker image)上,我安装了 php 7.2

并在我的项目的 composer.json 部分添加以下行 require

如果我运行任何其他钠功能,例如

工作正常。如果我尝试运行以下代码

我收到以下错误

调用未定义的函数 sodium_randombytes_buf()

有没有人有类似的问题?

0 投票
2 回答
1280 浏览

php - PHP 和 Sodium - 无法在表单中公开传递随机数

正如标题所示,我很难通过表单公开传递 nonce 的值。我尝试在表单中使用隐藏字段并将值作为参数传递给 url。

随机数是使用以下方法创建的:

当我尝试从隐藏字段 (POST) 或 url (GET) 中使用检索到的值(例如 sodium_crypto_secretbox_open)时,将返回以下错误:

未捕获的 SodiumException:nonce 大小应为 SODIUM_CRYPTO_SECRETBOX_NONCEBYTES 字节

我很欣赏 nonce 字符串的大小受到影响,但我不知道如何解决这个问题。

当我回显检索到的随机数时,它看起来很好。在随机数被回显后似乎存在一个问题,即它改变了大小并且被认为不适合被钠使用。

任何建议将不胜感激。

0 投票
1 回答
7297 浏览

php - 未安装 PHP Sodium?

我第一次尝试使用 Libsodium 进行加密,但我遇到了一个错误!我在 XAMPP 上运行所有东西,钠在 /ext/ 文件夹中,我已添加extension=sodium到 php.ini

这是我的代码:

引发此错误:

我正在使用 PHP 7.2.10

更新

Ran get_loaded_extensions 和钠没有安装,我不知道为什么。php_sodium.dll存在于 ext 文件夹中,我已extension=sodium在 php.ini 中添加了其他可以正确加载的扩展。

0 投票
1 回答
325 浏览

swift - 在 Swift 中导入钠的问题

我想要做的是快速加密一条消息,然后在 python 中解密它。所以我需要一个可靠、安全、跨平台的加密软件。

经过一番搜索,我找到了Sodium。但是我在将库导入到 swift 时遇到了一些麻烦。在我指定的 podfile

当我这样做的时候

我看到:(Installing Sodium (0.8.0)这是 Sodium 的最新版本)为绿色,所以我知道它已安装。在我的 viewController 的头部,我放了:

但我得到:

和:

是什么赋予了?为什么这不起作用?如何Sodium快速使用该软件包?

0 投票
2 回答
94 浏览

javascript - Libsodium JS KDF 函数产生不同的输出

我尝试在 Android、iOS 和 JS 上使用 crypto_kdf_derive_from_key 函数。在 Android 和 iOS 上,它产生相同的输出,但在 JS 上没有。上下文、主密钥和大小是相同的。任何想法为什么?

所有平台都在下面使用相同的核心功能:crypto_kdf_derive_from_key

JS:

IOS:

0 投票
0 回答
74 浏览

r - 错误的 R Shiny dashboardBody tabtable 位置

我正在尝试为我的 Shiny 应用程序添加登录选项,目前正在这里尝试解决方案:https ://www.r-craft.org/r-news/how-to-build-login-page-in-r -闪亮的应用程序/

我稍微修改了代码(在下面标有注释),但遇到了问题,例如 tabsetPanel 位置非常偏右,dashboardBody 中的 html 代码对侧边栏背景颜色和字体颜色不起作用。

任何建议将不胜感激。谢谢!

0 投票
2 回答
2680 浏览

php - 有没有办法在 PHP 中没有随机数的情况下使用 Sodium Encrypt?

我正在对新库“Libsodium”进行一些实验。基于https://www.zimuel.it/slides/zendcon2018/sodium#/21幻灯片。在这张幻灯片中,有一个关于使用钠进行加密和解密的示例。

我在这样的 PHP 类方法中使用了它:

它的工作原理应该是这样,那里没有问题。但是...... :-) 总是有一个“但是”。

例如,如果我使用这种方法加密电子邮件地址并将其作为用户登录凭据存储在数据库中,那么它们就是对他的凭据的唯一加密。下次用户输入他的凭据并加密这些凭据时,由于 $key 和 $nonce 的随机生成,我在数据库中找到了他。

如果我生成自己的非随机密钥:(https://www.allkeysgenerator.com/Random/Security-Encryption-Key-Generator.aspx

然后我收到消息:“密钥大小应该是 SODIUM_CRYPTO_SECRETBOX_KEYBYTES 字节”。

用钥匙:

那个问题也解决了吗。

然后 $ciphertext 仍然是随机的,因为随机数。用非随机随机数替换随机数发生器,例如:(https://www.random.org/bytes/

显示此消息:“nonce 大小应为 SODIUM_CRYPTO_SECRETBOX_NONCEBYTES 字节”。

与以下相同:

目前我目前的方法看起来像:

我查看了https://download.libsodium.org/doc/secret-key_cryptography但找不到创建非随机(秘密)随机数以在此加密实例中使用的解决方案。有人有想法吗?是否有更多人在 PHP 中使用 Sodium?欢迎任何意见。

0 投票
2 回答
695 浏览

javascript - 使用来自后端的公钥(PHP 钠)在前端(sodium-plus.js)上加密

sodium-plus.js我想在 Web 浏览器中使用PHP 钠生成的密钥来实现匿名公钥加密,如下所示:

使用此方法生成的密钥在 PHP 中使用sodium_crypto_box_sealandsodium_crypto_box_seal_open方法可以正常工作,但是,我无法使其在前端工作。我的做法:

这将返回TypeError: Argument 2 must be an instance of X25519PublicKey in the console。

笔记:

  1. sodium.crypto_box_keypair()从前端派生的公钥有效。
  2. 尝试使用CryptographyKey.from()而不是X25519PublicKey.from()- 没有用。
  3. getPublicKey()函数返回一个对象 wit buffer: Uint8Array(32) [ … ],而从 派生的公钥sodium.crypto_box_keypair()返回一个带有 的对象buffer: Uint8Array(32) [ … ], keyType: "x25519", publicKey: true

概念基于:

  1. https://github.com/paragonie/sodium-plus/blob/master/docs/SodiumPlus/sealed-boxes.md
  2. https://dev.to/paragonie/message-encryption-in-javascript-and-php-cg9
  3. https://stackoverflow.com/a/34058638
0 投票
0 回答
410 浏览

php - Sodium X25519 Xsalsa20 Poly1305 在 PHP 中解密消息

我想解密一条消息,但不知何故被卡住了。

我收到什么:

我得到了什么:

来自发件人的公钥我的公钥和私钥(所有密钥均为十六进制)。

现在我是加密货币的新手,我不确定应该如何处理信封哈希。我试过了:

我使用信封哈希作为随机数,但它太大了

未捕获的 SodiumException:nonce 大小应为 SODIUM_CRYPTO_BOX_NONCEBYTES 字节

所以我有点迷失了。也许有人知道这个信封哈希是什么?