longzai 发表于 2023-6-3 10:44

请问有办法能在linux下运行windows的函数吗

我想在linux使用 advapi32.dll 里的几个加密相关的函数( CryptCreateHash,CryptHashData,CryptGenKey,CryptExportKey等)

fortytwo 发表于 2023-6-3 10:56

你可以用OpenSSL里面等效的加密函数
或者用Wine,他实现了一些Windows API,但是我不确定有没有你需要的。
再或者使用docker来打包你的Windows环境,运行在容器里。
建议使用docker来解决,相关例子应该很多。

lvbuqing 发表于 2023-6-3 13:19

dll是Windows下的运行库,不可能在Linux下使用win下面的api

riwfhiu 发表于 2023-6-3 17:52

没有办法,只能手动重写函数,docker应该也不行,因为linux下运行的docker也没有win对应的底层支撑

law.liu 发表于 2023-6-5 11:37

在Linux上使用Windows的advapi32.dll库中的加密相关函数是不可行的,因为这些函数是为Windows操作系统设计和编写的,依赖于Windows的加密服务提供程序接口API

然而,在Linux上有等效的加密库和函数可供使用。Linux通常使用OpenSSL或GnuTLS等库来提供加密功能。你可以使用这些库来替代advapi32.dll中的函数,以实现相同的加密操作。

以下是一些在Linux上进行加密操作的常见库和函数:

OpenSSL:OpenSSL是一个开源的加密库,提供了各种加密算法和函数。你可以使用OpenSSL库中的函数来创建哈希、生成密钥和执行其他加密操作。

GnuTLS:GnuTLS是另一个开源的加密库,提供了TLS/SSL协议支持以及各种加密算法和函数。你可以使用GnuTLS库中的函数来进行加密操作。

Libgcrypt:Libgcrypt是GNU隐私保护库,提供了加密算法和相关函数。它是GnuPG项目的一部分,可以用于在Linux上进行加密操作。

这些库提供了在Linux上进行加密操作所需的功能和接口。你可以根据你的需求选择其中一个库,并使用相应的函数来替代advapi32.dll中的函数。

lijialong1313 发表于 2023-6-7 09:59

你可以自己写一套同名库,然后内部实现修改成linux就可以了。

其他情况除了把windows全部库搬过来没啥其他办法(wine我记得没实现,具体你可以去翻一下wine源码)。
页: [1]
查看完整版本: 请问有办法能在linux下运行windows的函数吗