在NodeJS应用程序中显示来自AlwaysEncrypted列的数据?

在Azure中有一个SQL Server数据库,.NET应用程序NodeJS应用程序访问 。 我只是将AlwaysEncrypted应用于包含敏感信息的表列。 我使用Azure密钥保pipe库来存储encryption密钥。

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

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

基于我的理解,我认为你所说的更优雅的方式是直接使用JavaScript解密应用于总是encryption的列的数据。

我找不到任何代码直接做。 不过,我觉得有两种方法可以尝试。

  1. 根据Using Always Encrypted with the JDBC Driver的官方文档,您可以尝试使用节点程序包node-java桥接使用Java查询encryption列数据的API。 请节点下面的内容。

对于SQL Server 2016(预览版),SQL Server始终只使用Microsoft JDBC Driver 6.0(Preview)或更高版本支持encryption。

  1. 有一个文档Always Encrypted Cryptography描述encryptionalgorithm和机制来派生在SQL Server和Azure SQL数据库的Always Encryptedfunction中使用的encryption材料。 看来你可以试着通过encryptionalgorithm的逆过程来解密encryption的数据,encryptionalgorithm就像crypto-jsbcrypt等一些节点包一样。

希望能帮助到你。