java - 尝试从加密列-sql 服务器获取纯文本时,如何解决“在证书存储中找不到带有指纹 null 的证书”?
问题描述
我有一个SQLserver (2017 ) version
带有数据库的远程Test_database
1 加密列,使用“始终加密证书”加密。
如何使用 JDBC 解密此列中的值?
我尝试.pfx
以格式导出证书并手动将其添加到certmgr.msc
我系统中的“个人”文件夹下。该过程工作正常。但是,如果我尝试以编程方式执行此操作,则会收到错误消息。这就是我需要的地方,一些指导和帮助。
String connectionUrl = "jdbc:sqlserver://172.24.114.121:1433;database=Test_database;user=sqlSampleLogin;password=myPass;trustServerCertificate=true;encrypt=true;columnEncryptionSetting=Enabled;"
+"keyStoreAuthentication=JavaKeyStorePassword"
+";keyStoreLocation="+pfxCertificateLocation
+";keyStoreSecret==myPass;";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection(connectionUrl);
PreparedStatement selectStatement = connection.prepareStatement("Select * from Table_1");
ResultSet results = selectStatement.executeQuery();
while (results.next()) {
String name = results.getString("name");
String sName = results.getString("sAMAccountName"); //Error in this line, since its encrypted
System.out.println(name +"\t"+sName+"\t");
}
预期结果: “sAMAccountName”列的解密值
实际结果:证书存储中未找到具有指纹 null 的证书 null 在证书位置 null (SQLServerException)
解决方案
推荐阅读
- jquery - 如何使用 div 在另一个内部创建彩色矩形框我添加了下面的图片以显示我想要做的示例
- sql - 红移 first_value 与最小值
- python - Python post request 有时只用词:网站没有发回正确的响应
- python - 如何将文件树复制为 Python 列表?
- security - 限制用户访问特定站点
- json - json方括号到xml属性
- diagram - 如何在 Grafana 中绘制网络图?
- ios - 部分中的表格视图行在显示时有问题
- google-cloud-platform - Gcloud 计算 - 如何获取实例的所有外部 IP 列表?
- python - LSTM 模型(在 Keras 中),每个输入的行数不同