在NodeJS应用程序中显示来自AlwaysEncrypted列的数据?
问题描述:
我在Azure中一个SQL Server数据库由一个.NET应用程序,并通过应用的NodeJS访问。我只是将AlwaysEncrypted应用于包含敏感信息的表列。我使用Azure密钥库来存储加密密钥。在NodeJS应用程序中显示来自AlwaysEncrypted列的数据?
我想知道是否可以在我的NodeJS应用程序中显示(解密)数据?
解决此问题的方法是通过我的.NET应用程序中的API端点公开要查询的数据,然后从我的NodeJS应用程序中调用该端点,但我正在寻找更优雅的方法做它。
答
基于我的理解,我认为您所说的更优雅的方式是直接使用JavaScript解密应用于始终加密的列的数据。
我找不到任何代码直接进行。不过,我认为有两种方法可以尝试。
- 根据官方文档
Using Always Encrypted with the JDBC Driver
,你可以尝试使用节点包node-java
弥合使用Java来查询加密列数据的API。请节点下面的内容。
始终加密由微软JDBC驱动程序6.0(预览版)或更高版本仅支持SQL Server和SQL服务器2016(预览)。
- 有一个文件
Always Encrypted Cryptography
描述加密算法和机制来导出在SQL Server和天青SQL数据库始终加密特征使用的密码材料。看来你可以尝试解密加密的数据通过与一些节点程序包进行数据加密算法的逆过程就像crypto-js
,bcrypt
等
希望它能帮助。
感谢您的回答,我暂时选择了不那么优雅的解决方案,因为逆向工程技术在时间上不够高效(投入研究部分的时间)。但是,当我有机会时,我会试试这个。干杯 – Toonsylvania