相当于 Linux 上的数据保护 API

2022-09-02 04:49:15

Microsoft Windows 2000 及更高版本公开数据保护 API (DPAPI),用于加密每个用户或每个系统上下文的数据。调用方不提供用于加密数据的密钥。相反,数据使用从用户或系统凭据派生的密钥进行加密。

此 API 通过 ProtectedData 类方便地在 .NET 中公开:

// Encrypts the data in a specified byte array and returns a byte array
// that contains the encrypted data.
public static byte[] Protect(
    byte[] userData,
    byte[] optionalEntropy,
    DataProtectionScope scope
)

// Decrypts the data in a specified byte array and returns a byte array
// that contains the decrypted data.
public static byte[] Unprotect(
    byte[] encryptedData,
    byte[] optionalEntropy,
    DataProtectionScope scope
)

Linux上有等效的API吗?一个好处是它可以方便地与Java集成。

如果没有,我的替代方案是什么?


答案 1

Linux 上的用户级密钥存储有两个选项:

这并不能满足对系统级密钥存储的需求。


答案 2

它看起来并不比PGP或Pretty Good Privacy更先进(或更不先进)。有可用于PGP的API,我记得其他人亲切地谈论的那个是Bouncy Castle

以下是某人如何使用充气城堡的示例

根据您的特定需求,可能会提供更好的 API 或解决方案。