- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我通过 NuGet 安装了 Libsodium-net 并且能够在我的类中包含 Sodium,但是当我尝试运行它时,我得到了
Sodium.dll 中发生了“System.DllNotFoundException”类型的异常,但未在用户代码中处理
附加信息:无法加载 DLL“libsodium.dll”:找不到指定的模块。 (HRESULT 异常:0x8007007E)
我只是想运行 gitbooks 文档中的示例代码 https://bitbeans.gitbooks.io/libsodium-net/content/password_hashing/index.html
const string PASSWORD = "Correct Horse Battery Staple";
const string SALT = "qa~t](84z<1t<1oz:ik.@IRNyhG=8q(o";
const long OUTPUT_LENGTH = 512;
//this will produce a 512 byte hash
var hash = PasswordHash.ScryptHashBinary(PASSWORD, SALT, PasswordHash.Strength.Medium, OUTPUT_LENGTH);
最佳答案
我遇到了同样的问题并使用 Jørn Wildt's answer given here 解决了它.
It turns out that ASP.NET doesn't make shadow copies of unmanaged DLLs such as libsodium.dll and libsodium-64.dll.
Sodium.dll (the managed code) tries to load the DLLs from either the same directory as the shadow copy of Sodium.dll (which is not going to work) - or some where in the PATH environment variable's directories.
My solution was to add the AppDomain \Bin directory to the path before calling any Sodium code:
string path = Environment.GetEnvironmentVariable("PATH");
string binDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Bin");
Environment.SetEnvironmentVariable("PATH", path + ";" + binDir);
正如鲁本对答案的评论;我在 Global.asax
的 Application_Start
方法中添加了上述代码。
关于c# - Libsodium-net - 无法加载 DLL 'libsodium.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37347620/
我通过 NuGet 安装了 Libsodium-net 并且能够在我的类中包含 Sodium,但是当我尝试运行它时,我得到了 Sodium.dll 中发生了“System.DllNotFoundExc
我需要在我的 Ubuntu (14.04) 服务器上的 PHP(5.5.9) 应用程序中加密密码和一些其他数据。我阅读了 libsodium,发现它非常适合应用程序要求。我遵循了唯一的 tutoria
我一直在努力使用 crypto_secretbox_easy() 在 libsodium 中加密/解密一些数据| .我似乎找不到关于使用的任何好的文档。 我想从用户那里获取密码,用它来以某种方式制作
功能 int crypto_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m,
我在嵌入式设备上使用 libsodium。我想与移动设备交互以进行 key 生成/加密/解密。 是否有必要在所有参与加密通信的设备上使用 libsodium? 换句话说:libsodium 包装了 N
我正在编写一个应用程序,用户可以在其中通过端到端加密在设备之间进行通信。为此,我使用 libsodium 加密库。非对称加密函数 crypto_box(...) 需要一个随机数作为参数之一。 我对如何
我想用 libsodium 中的公私 key 方法加密一个大文件(100 MB)。对于小消息,我使用 crypto_box_easy() ,但这不适用于大文件。最好的使用方法是什么crypto_box
我一直在使用 PHP 中的 openssl 库来生成用于 RSA 加密的 key 对,并且看到在最新版本的 PHP 7.2 中,现在已经集成了 libsodium。 我想更新到较新的库,并且可以生成
RFC 7539定义其 AEAD 构造如下: chacha20_aead_encrypt(aad, key, iv, constant, plaintext): nonce = constant
我正在尝试在扩展程序中使用 libsodium.js 库,到目前为止只在 Chrome(当前版本 71)中进行了测试。 到目前为止,它在标准网页上下文中运行良好,但是当我尝试在扩展中加载它时,出现错误
在我的 C++ 项目中,我使用 libsodium 库来创建和验证消息的签名。 为了验证签名,我以这种方式使用 libsodium crypto_sign_open 函数 bool Signature
我正在尝试在 C++ 项目中使用 libsodium 库,但在将静态 Libsodium 库链接到我创建的共享对象时遇到了困难。该项目正在使用 G++ 编译,并设置为使用 C++11 标准。 在阅读了
我一直在努力使用 libsodium 中的 crypto_secretbox_easy() 来加密/解密一些数据。 .我似乎找不到任何关于用法的好文档。 我想从用户那里得到一个密码,用它来生成一个 k
我正在使用以下函数使用 libsodium 创建一个密封盒: void encrypt_message(char *msg, char *enc_msg, int db_id) { unsig
我想知道为 crypto_stream_salsa20_xor 提供与明文和密文相同的缓冲区是否安全。我试图查看源文件。 crypto_stream_salsa20_xor使用了crypto_core
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我计划将一堆记录存储在一个文件中,然后用 libsodium 对每个记录进行签名。 .但是,我希望我的程序的 future 版本能够检查当前版本所做的签名,反之亦然。 对于当前版本的钠,签名是使用 E
我正在使用 libsodium 通过 xchacha20poly1305 结构加密文件。我按照文档 (https://download.libsodium.org/doc/secret-key_cry
我正在查看 libsodium,特别是对称加密选项 XChaCha20-Poly1305 .我无法理解的是,libsodium 似乎没有提供加密库中常见的“上下文/更新/最终确定”工作方式。 从 li
我正在尝试安装 libsodium(按照本指南 https://paragonie.com/book/pecl-libsodium/read/00-intro.md#installing-libsod
我是一名优秀的程序员,十分优秀!