2

在 Azure 中有一个 SQL Server 数据库,可由.NET 应用程序NodeJS 应用程序访问。我刚刚将AlwaysEncrypted应用于包含敏感信息的表列。我使用Azure Key Vault存储加密密钥。

我想知道是否可以在我的 NodeJS 应用程序中显示(解密的)数据?

解决方法是在我的 .NET 应用程序中通过 API 端点公开我想要查询的数据,然后从我的 NodeJS 应用程序调用该端点,但我正在寻找一种更优雅的方式来做这件事

4

1 回答 1

2

根据我的理解,我认为您所说的更优雅的方式是直接使用 JavaScript 解密应用 Always Encrypted 的列的数据。

我找不到任何直接执行此操作的代码。但是,我认为您可以尝试两种方法。

  1. 根据官方文档Using Always Encrypted with the JDBC Driver,可以尝试使用node包node-java来桥接一个使用Java查询加密列数据的API。请在下面结点内容。

只有Microsoft JDBC Driver 6.0(预览版)或更高版本的 SQL Server 和 SQL Server 2016(预览版)支持 Always Encrypted。

  1. 有一个文档Always Encrypted Cryptography描述了用于派生 SQL Server 和 Azure SQL 数据库中的 Always Encrypted 功能中使用的加密材料的加密算法和机制。似乎您可以尝试通过使用一些节点包(如crypto-jsbcrypt等)执行数据加密算法的逆过程来解密加密数据。

希望能帮助到你。

于 2016-05-06T09:29:13.953 回答