在NodeJS应用程序中显示来自AlwaysEncrypted列的数据?
我在Azure中有一个SQL Server数据库,由.NET应用程序和NodeJS应用程序访问 。 我只是将AlwaysEncrypted应用于包含敏感信息的表列。 我使用Azure密钥保pipe库来存储encryption密钥。
我想知道是否有可能在我的NodeJS应用程序中显示(解密)的数据?
解决这个问题的方法是通过.NET应用程序中的API端点公开要查询的数据,然后从NodeJS应用程序中调用该端点,但是我正在寻找一种更优雅的方法 。
基于我的理解,我认为你所说的更优雅的方式是直接使用JavaScript解密应用于总是encryption的列的数据。
我找不到任何代码直接做。 不过,我觉得有两种方法可以尝试。
- 根据
Using Always Encrypted with the JDBC Driver
的官方文档,您可以尝试使用节点程序包node-java
桥接使用Java查询encryption列数据的API。 请节点下面的内容。
对于SQL Server 2016(预览版),SQL Server始终只使用Microsoft JDBC Driver 6.0(Preview)或更高版本支持encryption。
- 有一个文档
Always Encrypted Cryptography
描述encryptionalgorithm和机制来派生在SQL Server和Azure SQL数据库的Always Encryptedfunction中使用的encryption材料。 看来你可以试着通过encryptionalgorithm的逆过程来解密encryption的数据,encryptionalgorithm就像crypto-js
,bcrypt
等一些节点包一样。
希望能帮助到你。