c++ - C++ 中 "SASLprep"实现的 "stringprep"配置文件

标签 c++ windows pdf encryption aes

我正在 PDF 中实现 AES 256 位加密,PDF 引用手册说明了计算加密 key 的算法 3.2a 的第一步

<强>1。通过使用 SASLprep 处理输入字符串,从 Unicode 输入生成密码字符串 (IETF RFC 4013) stringprep (IETF RFC 3454) 配置文件,然后转换为 UTF-8 表示形式。

我的问题是如何将字符串转换为字符串准备?。 Windows 是否有免费的库来执行字符串准备的 SASLprep 配置文件,我找到了适用于 Unix 的库,但没有找到适用于 Windows 的库。

最佳答案

看看https://www.gnu.org/software/libidn 。 它指定有一个 Windows 解决方案(Visual Studio)。 事实证明,这对于所有 2.x 版本都是错误的,但 1.17 有一个 win32 目录,其中包含适合 Visual Studio C++ 的内容。您需要为静态库(而不是 dll)设置一些定义,至少是 LIBIDN_BUILDING 和 LIBIDN_STATIC 。您猜对了。我使用 VS2019 编译了所有版本(如果适用,则进行链接),几乎没有警告(只有一些指针减法 -> 长)。 包括 SASL(准备)。 如果需要,您可以通过用较新的文件替换源文件来检查是否可以完成较新的版本。如果您这样做,请告诉我们。

关于c++ - C++ 中 "SASLprep"实现的 "stringprep"配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38093450/

相关文章:

c++ - Win32 - 读取桌面像素的最快方法

java - 在 pdf 或 excel 中显示表情符号

c++ - 包含虚函数的类可以成为单例吗?

c++ - 具有不同字符大小的 spirit::qi::grammar-name

c++ - 递归加法序列C++

c - 为什么大多数与 HANDLE 相关的函数在失败时返回 0?

windows - pthread 条件变量与 win32 事件(linux 与 windows-ce)

java - 使用 itext 的 XML 工作器

ios - 如何在 Swift 的 UIWebView 中加载本地 PDF

c++ - Unresolved external 问题 c++