我在 Azure 中有一个 SQL Server 数据库,可由.NET 应用程序和NodeJS 应用程序访问。我刚刚将AlwaysEncrypted应用于包含敏感信息的表列。我使用Azure Key Vault存储加密密钥。
我想知道是否可以在我的 NodeJS 应用程序中显示(解密的)数据?
解决方法是在我的 .NET 应用程序中通过 API 端点公开我想要查询的数据,然后从我的 NodeJS 应用程序调用该端点,但我正在寻找一种更优雅的方式来做这件事。
我在 Azure 中有一个 SQL Server 数据库,可由.NET 应用程序和NodeJS 应用程序访问。我刚刚将AlwaysEncrypted应用于包含敏感信息的表列。我使用Azure Key Vault存储加密密钥。
我想知道是否可以在我的 NodeJS 应用程序中显示(解密的)数据?
解决方法是在我的 .NET 应用程序中通过 API 端点公开我想要查询的数据,然后从我的 NodeJS 应用程序调用该端点,但我正在寻找一种更优雅的方式来做这件事。
根据我的理解,我认为您所说的更优雅的方式是直接使用 JavaScript 解密应用 Always Encrypted 的列的数据。
我找不到任何直接执行此操作的代码。但是,我认为您可以尝试两种方法。
Using Always Encrypted with the JDBC Driver
,可以尝试使用node包node-java
来桥接一个使用Java查询加密列数据的API。请在下面结点内容。只有Microsoft JDBC Driver 6.0(预览版)或更高版本的 SQL Server 和 SQL Server 2016(预览版)支持 Always Encrypted。
Always Encrypted Cryptography
描述了用于派生 SQL Server 和 Azure SQL 数据库中的 Always Encrypted 功能中使用的加密材料的加密算法和机制。似乎您可以尝试通过使用一些节点包(如crypto-js
,bcrypt
等)执行数据加密算法的逆过程来解密加密数据。希望能帮助到你。